From 7703bb1b62dcdc8b590707eedad6e7695690e8b6 Mon Sep 17 00:00:00 2001 From: Felipe Novaes F Rocha Date: Wed, 19 Jun 2024 03:09:19 -0300 Subject: [PATCH] :sparkles: RegistryFactory upgradable UUPS + tests --- .gitmodules | 6 ++-- foundry.toml | 5 +++ lib/openzeppelin-contracts | 2 +- pkg/contracts/example.env | 2 ++ pkg/contracts/out/Allo.sol/Allo.json | 2 +- .../out/CVStrategy.sol/CVStrategy.json | 2 +- .../out/CVStrategy.sol/IPointStrategy.json | 2 +- .../out/CVStrategy.sol/StrategyStruct.json | 2 +- .../CVStrategyHelpers.json | 2 +- pkg/contracts/out/ERC20.sol/ERC20.json | 2 +- pkg/contracts/out/ERC20/ERC20.sol/ERC20.json | 1 - .../out/ERC20/IERC20.sol/IERC20.json | 2 +- pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json | 2 +- pkg/contracts/out/IAllo.sol/IAllo.json | 2 +- pkg/contracts/out/IERC20.sol/IERC20.json | 2 +- .../IERC20Metadata.sol/IERC20Metadata.json | 2 +- .../out/IERC20Permit.sol/IERC20Permit.json | 2 +- .../IERC20Upgradeable.json | 2 +- .../out/IRegistry.sol/IRegistry.json | 2 +- pkg/contracts/out/ISafe.sol/ISafe.json | 2 +- .../out/MockERC20.sol/MockERC20.json | 2 +- .../PassportScorer.sol/PassportScorer.json | 2 +- .../PassportScorerTest.json | 2 +- pkg/contracts/out/Registry.sol/Registry.json | 2 +- .../out/RegistryCommunity.sol/FAllo.json | 2 +- .../RegistryCommunity.json | 2 +- .../RegistryFactory.sol/RegistryFactory.json | 2 +- .../RegistryFactoryV0_0.json | 1 + .../RegistryFactoryV0_1.json | 1 + .../out/RegistrySetup.sol/RegistrySetup.json | 2 +- .../RegistrySetup.sol/RegistrySetupFull.json | 2 +- .../out/SafeERC20.sol/SafeERC20.json | 2 +- pkg/contracts/out/TERC20.sol/TERC20.json | 2 +- .../out/utils/MockERC20.sol/MockERC20.json | 1 - pkg/contracts/src/RegistryFactoryV0_0.sol | 32 +++++++++++++------ pkg/contracts/src/RegistryFactoryV0_1.sol | 32 +++++++++++++++++++ .../test/RegistryUpgradeableTest.t.sol | 29 +++++++++++------ remappings.txt | 3 +- 38 files changed, 115 insertions(+), 52 deletions(-) delete mode 100644 pkg/contracts/out/ERC20/ERC20.sol/ERC20.json create mode 100644 pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json create mode 100644 pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json delete mode 100644 pkg/contracts/out/utils/MockERC20.sol/MockERC20.json create mode 100644 pkg/contracts/src/RegistryFactoryV0_1.sol diff --git a/.gitmodules b/.gitmodules index 70f5c80ce..a0a8ada2b 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,12 +7,12 @@ [submodule "lib/safe-contracts"] path = lib/safe-contracts url = https://github.com/safe-global/safe-contracts -[submodule "lib/openzeppelin-contracts"] - path = lib/openzeppelin-contracts - url = https://github.com/OpenZeppelin/openzeppelin-contracts [submodule "lib/openzeppelin-foundry-upgrades"] path = lib/openzeppelin-foundry-upgrades url = https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades +[submodule "lib/openzeppelin-contracts"] + path = lib/openzeppelin-contracts + url = https://github.com/OpenZeppelin/openzeppelin-contracts [submodule "lib/openzeppelin-contracts-upgradeable"] path = lib/openzeppelin-contracts-upgradeable url = https://github.com/OpenZeppelin/openzeppelin-contracts-upgradeable diff --git a/foundry.toml b/foundry.toml index d04d2f44f..4aca6b031 100644 --- a/foundry.toml +++ b/foundry.toml @@ -5,11 +5,16 @@ src = 'pkg/contracts' test = 'pkg/contracts/test' out = 'pkg/contracts/out' libs = ['lib'] +ffi = true +ast = true +build_info = true +extra_output = ["storageLayout"] optimizer = true optimizer-runs = 1_000 # prompt_timeout = 120 fs_permissions = [{ access = "read", path = "./"}] +# fs_permissions = [] # auto_detect_remappings = true # recursive auto-detection of remappings # remappings = ["ds-test/=lib/forge-std/lib/ds-test/src/", # "forge-std/=lib/forge-std/src/", diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts index dc44c9f1a..442886ed5 160000 --- a/lib/openzeppelin-contracts +++ b/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit dc44c9f1a4c3b10af99492eed84f83ed244203f6 +Subproject commit 442886ed5ff8a0b9ab477b191f5238541ee6d772 diff --git a/pkg/contracts/example.env b/pkg/contracts/example.env index 4f0e736a1..078f0d29a 100644 --- a/pkg/contracts/example.env +++ b/pkg/contracts/example.env @@ -1,3 +1,5 @@ +FOUNDRY_OUT=pkg/contracts/out + RPC_URL= ALLO_PROXY=0x1133eA7Af70876e64665ecD07C0A0476d09465a1 ALLO_IMPL=0xB087535DB0df98fC4327136e897A5985E5Cfbd66 diff --git a/pkg/contracts/out/Allo.sol/Allo.json b/pkg/contracts/out/Allo.sol/Allo.json index b83166f09..a79e1f972 100644 --- a/pkg/contracts/out/Allo.sol/Allo.json +++ b/pkg/contracts/out/Allo.sol/Allo.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addToCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"batchAllocate","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_datas","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterRecipient","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"recipientIds","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"completeOwnershipHandover","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"createPool","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"distribute","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeDenominator","inputs":[],"outputs":[{"name":"FEE_DENOMINATOR","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getPercentFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStrategy","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTreasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_registry","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address payable"},{"name":"_percentFee","type":"uint256","internalType":"uint256"},{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCloneableStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolAdmin","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"result","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownershipHandoverExpiresAt","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"removeFromCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateBaseFee","inputs":[{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePercentFee","inputs":[{"name":"_percentFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePoolMetadata","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRegistry","inputs":[{"name":"_registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BaseFeePaid","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BaseFeeUpdated","inputs":[{"name":"baseFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverCanceled","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverRequested","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PercentFeeUpdated","inputs":[{"name":"percentFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"PoolFunded","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolMetadataUpdated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyApproved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryUpdated","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506135a1806100206000396000f3fe6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea2646970667358221220f6d0ed3d14d299b553e8beb97bdc4287f01be2c407fb1e65f9f19ca299bb329c64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea2646970667358221220f6d0ed3d14d299b553e8beb97bdc4287f01be2c407fb1e65f9f19ca299bb329c64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3029:213:12;;;;;;;;;;-1:-1:-1;3029:213:12;;;;;:::i;:::-;;:::i;:::-;;;516:14:122;;509:22;491:41;;479:2;464:18;3029:213:12;;;;;;;;14900:288:0;;;;;;;;;;-1:-1:-1;14900:288:0;;;;;:::i;:::-;;:::i;:::-;;34013:108;;;;;;;;;;-1:-1:-1;34013:108:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;17298:276::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4391:55:122;;;4373:74;;4361:2;4346:18;17298:276:0;4227:226:122;33140:85:0;;;;;;;;;;-1:-1:-1;33211:7:0;;33140:85;;;4604:25:122;;;4592:2;4577:18;33140:85:0;4458:177:122;18212:747:0;;;;;;;;;;-1:-1:-1;18212:747:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13330:105::-;;;;;;;;;;-1:-1:-1;13330:105:0;;;;;:::i;:::-;;:::i;4834:129:12:-;;;;;;;;;;-1:-1:-1;4834:129:12;;;;;:::i;:::-;4908:7;4934:12;;;:6;:12;;;;;:22;;;;4834:129;16308:430:0;;;;;;;;;;-1:-1:-1;16308:430:0;;;;;:::i;:::-;;:::i;7331:617:42:-;;;:::i;32476:144:0:-;;;;;;;;;;-1:-1:-1;32476:144:0;;;;;:::i;:::-;;:::i;15387:358::-;;;;;;;;;;-1:-1:-1;15387:358:0;;;;;:::i;:::-;;:::i;19921:127::-;;;;;;:::i;:::-;;:::i;5259:145:12:-;;;;;;;;;;-1:-1:-1;5259:145:12;;;;;:::i;:::-;;:::i;6368:214::-;;;;;;;;;;-1:-1:-1;6368:214:12;;;;;:::i;:::-;;:::i;21468:196:0:-;;;;;;;;;;-1:-1:-1;21468:196:0;;;;;:::i;:::-;;:::i;33313:95::-;;;;;;;;;;-1:-1:-1;33393:8:0;;-1:-1:-1;;;;;33393:8:0;33313:95;;14481:229;;;;;;;;;;-1:-1:-1;14481:229:0;;;;;:::i;:::-;;:::i;32977:91::-;;;;;;;;;;-1:-1:-1;33051:10:0;;32977:91;;8030:456:42;;;:::i;33488:89:0:-;;;;;;;;;;-1:-1:-1;33562:8:0;;-1:-1:-1;;;;;33562:8:0;33488:89;;19156:439;;;;;;:::i;:::-;;:::i;12894:247::-;;;;;;;;;;-1:-1:-1;12894:247:0;;;;;:::i;:::-;;:::i;7072:100:42:-;;;:::i;11971:701:0:-;;;;;;:::i;:::-;;:::i;13624:113::-;;;;;;;;;;-1:-1:-1;13624:113:0;;;;;:::i;:::-;;:::i;15950:160::-;;;;;;;;;;-1:-1:-1;15950:160:0;;;;;:::i;:::-;;:::i;9718:191:42:-;;;;;;;;;;-1:-1:-1;;;9866:27:42;9718:191;;14188:101:0;;;;;;;;;;-1:-1:-1;14188:101:0;;;;;:::i;:::-;;:::i;3329:145:12:-;;;;;;;;;;-1:-1:-1;3329:145:12;;;;;:::i;:::-;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;;;;3329:145;4412:75:9;;;;;;;;;;;;4445:42;4412:75;;2450:49:12;;;;;;;;;;-1:-1:-1;2450:49:12;2495:4;2450:49;;7626:593:0;;;;;;;;;;-1:-1:-1;7626:593:0;;;;;:::i;:::-;;:::i;33760:132::-;;;;;;;;;;-1:-1:-1;33760:132:0;;;;;:::i;:::-;;:::i;32112:140::-;;;;;;;;;;-1:-1:-1;32112:140:0;;;;;:::i;:::-;;:::i;20511:559::-;;;;;;;;;;-1:-1:-1;20511:559:0;;;;;:::i;:::-;;:::i;32753:126::-;;;;;;;;;;-1:-1:-1;32753:126:0;;;;;:::i;:::-;32814:7;32848:14;;;:5;:14;;;;;:23;;;-1:-1:-1;;;;;32848:23:0;;32753:126;5684:147:12;;;;;;;;;;-1:-1:-1;5684:147:12;;;;;:::i;:::-;;:::i;10281:884:0:-;;;;;;:::i;:::-;;:::i;8673:708:42:-;;;;;;:::i;:::-;;:::i;6658:349::-;;;;;;:::i;:::-;;:::i;31788:103:0:-;;;;;;;;;;-1:-1:-1;31880:4:0;31788:103;;13911:113;;;;;;;;;;-1:-1:-1;13911:113:0;;;;;:::i;:::-;;:::i;10012:435:42:-;;;;;;;;;;-1:-1:-1;10012:435:42;;;;;:::i;:::-;10282:19;10276:4;10269:33;;;10131:14;10315:26;;;;10425:4;10409:21;;10403:28;;10012:435;3029:213:12;3114:4;3137:58;;;3152:43;3137:58;;:98;;-1:-1:-1;1183:36:21;1168:51;;;;3199:36:12;3130:105;3029:213;-1:-1:-1;;3029:213:12:o;14900:288:0:-;10836:13:42;:11;:13::i;:::-;-1:-1:-1;;;;;15059:30:0;::::1;15092:5;15059:30:::0;;;:19:::1;:30;::::0;;;;;;;;:38;;-1:-1:-1;;15059:38:0::1;::::0;;15155:26;;4373:74:122;;;15155:26:0::1;::::0;4346:18:122;15155:26:0::1;;;;;;;;14900:288:::0;:::o;34013:108::-;34070:11;;:::i;:::-;34100:14;;;;:5;:14;;;;;;;;;34093:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;34093:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34100:14;;34093:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34013:108;;;:::o;17298:276::-;17401:7;2505:21:16;:19;:21::i;:::-;17489:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:78;;;;;-1:-1:-1;;;;;17489:23:0;;::::1;::::0;:41:::1;::::0;17538:9:::1;::::0;17489:78:::1;::::0;17549:5;;17556:10:::1;::::0;17489:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17482:85;;2547:20:16::0;1787:1;3053:7;:22;2873:209;18212:747:0;18348:29;2505:21:16;:19;:21::i;:::-;18416:15:0;;;18456:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;18456:27:0::1;;18441:42;;18514:5;:12;18498;:28;18494:51;;18535:10;;-1:-1:-1::0;;;18535:10:0::1;;;;;;;;;;;18494:51;18663:9;18658:204;18678:12;18674:1;:16;18658:204;;;18725:5;:18;18731:8;18740:1;18731:11;;;;;;;;:::i;:::-;;;;;;;18725:18;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1::0;;;;;18725:27:0::1;-1:-1:-1::0;;;;;18725:45:0::1;;18771:5;18777:1;18771:8;;;;;;;;:::i;:::-;;;;;;;18781:10;18725:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18707:12;18720:1;18707:15;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18707:85:0;;::::1;:15;::::0;;::::1;::::0;;;;;;;:85;18834:3:::1;;18658:204;;;;18933:19;2547:20:16::0;1787:1;3053:7;:22;2873:209;13330:105:0;10836:13:42;:11;:13::i;:::-;13402:26:0::1;13418:9;13402:15;:26::i;:::-;13330:105:::0;:::o;16308:430::-;10836:13:42;:11;:13::i;:::-;16506:14:0::1;-1:-1:-1::0;;;;;16523:16:0;::::1;4445:42:9;16523:16:0;:93;;16566:50;::::0;;;;16610:4:::1;16566:50;::::0;::::1;4373:74:122::0;-1:-1:-1;;;;;16566:35:0;::::1;::::0;::::1;::::0;4346:18:122;;16566:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16523:93;;;16542:21;16523:93;16506:110;;16688:43;16704:6;16712:10;16724:6;16688:15;:43::i;:::-;16385:353;16308:430:::0;;:::o;7331:617:42:-;7424:15;6282:9;7442:46;;:15;:46;7424:64;;7656:19;7650:4;7643:33;7706:8;7700:4;7693:22;7762:7;7755:4;7749;7739:21;7732:38;7909:8;7862:45;7859:1;7856;7851:67;7558:374;7331:617::o;32476:144:0:-;32557:4;32580:33;32595:7;32604:8;32580:14;:33::i;:::-;32573:40;32476:144;-1:-1:-1;;;32476:144:0:o;15387:358::-;15469:7;8837:28;8857:7;8837:19;:28::i;:::-;-1:-1:-1;;;;;15568:22:0;::::1;15564:49;;15599:14;;-1:-1:-1::0;;;15599:14:0::1;;;;;;;;;;;15564:49;15701:14;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;15690:48:::1;::::0;15729:8;15690:10:::1;:48::i;19921:127::-:0;2505:21:16;:19;:21::i;:::-;20016:25:0::1;20026:7;20035:5;20016:9;:25::i;:::-;2547:20:16::0;1787:1;3053:7;:22;2873:209;2547:20;19921:127:0;;:::o;5259:145:12:-;4908:7;4934:12;;;:6;:12;;;;;:22;;;2928:16;2939:4;2928:10;:16::i;:::-;5372:25:::1;5383:4;5389:7;5372:10;:25::i;6368:214::-:0;-1:-1:-1;;;;;6463:23:12;;929:10:19;6463:23:12;6455:83;;;;-1:-1:-1;;;6455:83:12;;16949:2:122;6455:83:12;;;16931:21:122;16988:2;16968:18;;;16961:30;17027:34;17007:18;;;17000:62;17098:17;17078:18;;;17071:45;17133:19;;6455:83:12;;;;;;;;;6549:26;6561:4;6567:7;6549:11;:26::i;21468:196:0:-;2505:21:16;:19;:21::i;:::-;21589:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:68;;;;;-1:-1:-1;;;;;21589:23:0;;::::1;::::0;:34:::1;::::0;:68:::1;::::0;21624:13;;21639:5;;21646:10:::1;::::0;21589:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2547:20:16::0;1787:1;3053:7;:22;2873:209;14481:229:0;10836:13:42;:11;:13::i;:::-;-1:-1:-1;;;;;14567:23:0;::::1;14563:50;;14599:14;;-1:-1:-1::0;;;14599:14:0::1;;;;;;;;;;;14563:50;-1:-1:-1::0;;;;;14624:30:0;::::1;;::::0;;;:19:::1;:30;::::0;;;;;;;;:37;;-1:-1:-1;;14624:37:0::1;14657:4;14624:37;::::0;;14676:27;;4373:74:122;;;14676:27:0::1;::::0;4346:18:122;14676:27:0::1;4227:226:122::0;8030:456:42;8232:19;8226:4;8219:33;8278:8;8272:4;8265:22;8330:1;8323:4;8317;8307:21;8300:32;8461:8;8415:44;8412:1;8409;8404:66;8030:456::o;19156:439:0:-;2505:21:16;:19;:21::i;:::-;19318:7:0::1;19329:1;19318:12:::0;19314:43:::1;;19339:18;;-1:-1:-1::0;;;19339:18:0::1;;;;;;;;;;;19314:43;19368:16;19387:14:::0;;;:5:::1;:14;::::0;;;;;;;19368:33;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;19368:33:0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;;;19387:14;;19368:33;;;;;;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;19368:33:0;;;;-1:-1:-1;;;19368:33:0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;19415:10;::::1;::::0;19368:33;;-1:-1:-1;;;;;;19415:20:0::1;4445:42:9;19415:20:0;:44:::0;::::1;;;;19450:9;19439:7;:20;;19415:44;19411:75;;;19468:18;;-1:-1:-1::0;;;19468:18:0::1;;;;;;;;;;;19411:75;19546:42;19556:7;19565;19574:4;:13;;;19546:9;:42::i;:::-;19238:357;2547:20:16::0;1787:1;3053:7;:22;2873:209;12894:247:0;12991:7;8625:30;8647:7;8625:21;:30::i;:::-;13010:17:::1;13030:14:::0;;;:5:::1;:14;::::0;;;;;;;13054:25;;:13:::1;::::0;::::1;:25:::0;;;;;::::1;::::0;13030:14;;13070:9;;13054:25;;;;::::1;::::0;;::::1;:::i;:::-;;;;;13115:7;13095:39;13124:9;13095:39;;;;;;:::i;:::-;;;;;;;;13000:141;12894:247:::0;;;:::o;7072:100:42:-;10836:13;:11;:13::i;:::-;7144:21:::1;7162:1;7144:9;:21::i;:::-;7072:100::o:0;11971:701:0:-;12251:14;2505:21:16;:19;:21::i;:::-;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;12277:93:::1;;12336:23;;;;;;;;;;;;;;12277:93;12522:10;12514:19;::::0;;;:7:::1;:19;::::0;;;;:21;;12426:239:::1;::::0;12451:10;;12485:51:::1;::::0;12503:9;;12514:21;;:19;:21:::1;::::0;::::1;:::i;:::-;;;;;12485:17;:51::i;:::-;12551:17;12582:6;12602:7;12623:9;12646;12426:11;:239::i;:::-;12419:246;;2547:20:16::0;1787:1;3053:7;:22;2873:209;2547:20;11971:701:0;;;;;;;;;:::o;13624:113::-;10836:13:42;:11;:13::i;:::-;13704:26:0::1;13720:9;13704:15;:26::i;15950:160::-:0;16035:7;8837:28;8857:7;8837:19;:28::i;:::-;16066:14:::1;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;16054:49:::1;::::0;16094:8;16054:11:::1;:49::i;14188:101::-:0;10836:13:42;:11;:13::i;:::-;14258:24:0::1;14273:8;14258:14;:24::i;7626:593::-:0;4882:13:15;;7816:1:0;;4882:13:15;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:15;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:15;;20711:2:122;4873:99:15;;;20693:21:122;20750:2;20730:18;;;20723:30;20789:34;20769:18;;;20762:62;20860:16;20840:18;;;20833:44;20894:19;;4873:99:15;20509:410:122;4873:99:15;4982:12;:22;;-1:-1:-1;;5014:20:15;4982:22;;;5014:20;4982:22;5014:20;;;7890:24:0::1;7907:6:::0;7890:16:::1;:24::i;:::-;7968:26;7984:9;7968:15;:26::i;:::-;8048;8064:9;8048:15;:26::i;:::-;8119:30;8137:11;8119:17;:30::i;:::-;8188:24;8203:8;8188:14;:24::i;:::-;5071:5:15::0;5055:21;;-1:-1:-1;;5055:21:15;;;5091:20;;21096:4:122;21084:17;;21066:36;;5091:20:15;;21054:2:122;21039:18;5091:20:15;;;;;;;7626:593:0;;;;;;:::o;33760:132::-;-1:-1:-1;;;;;28993:30:0;;33831:4;28993:30;;;:19;:30;;;;;;;;33854:31;28898:132;32112:140;32191:4;32214:31;32227:7;32236:8;32214:12;:31::i;20511:559::-;2505:21:16;:19;:21::i;:::-;20784:13:0;;20637:8;;20772:25;::::1;20768:48;;20806:10;;-1:-1:-1::0;;;20806:10:0::1;;;;;;;;;;;20768:48;20921:9;20916:148;20936:8;20932:1;:12;20916:148;;;20961:33;20971:8;;20980:1;20971:11;;;;;;;:::i;:::-;;;;;;;20984:6;20991:1;20984:9;;;;;;;;:::i;:::-;;;;;;;20961;:33::i;:::-;21036:3;;20916:148;;;;20608:462;2547:20:16::0;1787:1;3053:7;:22;2873:209;5684:147:12;4908:7;4934:12;;;:6;:12;;;;;:22;;;2928:16;2939:4;2928:10;:16::i;:::-;5798:26:::1;5810:4;5816:7;5798:11;:26::i;10281:884:0:-:0;10566:14;-1:-1:-1;;;;;10687:23:0;;10683:50;;10719:14;;-1:-1:-1;;;10719:14:0;;;;;;;;;;;10683:50;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;10894:66;;;10938:22;;;;;;;;;;;;;;10894:66;11055:103;11067:10;11089:9;11101:17;11120:6;11128:7;11137:9;11148;11055:11;:103::i;:::-;11048:110;10281:884;-1:-1:-1;;;;;;;;10281:884:0:o;8673:708:42:-;10836:13;:11;:13::i;:::-;8907:19:::1;8901:4;8894:33;8953:12;8947:4;8940:26;9015:4;9009;8999:21;9121:12;9115:19;9102:11;9099:36;9096:157;;;9167:10;9161:4;9154:24;9234:4;9228;9221:18;9096:157;9330:1;9309:23:::0;;9351::::1;9361:12:::0;9351:9:::1;:23::i;6658:349::-:0;10836:13;:11;:13::i;:::-;6830:8:::1;6826:2;6822:17;6812:150;;6872:10;6866:4;6859:24;6943:4;6937;6930:18;6812:150;6981:19;6991:8;6981:9;:19::i;13911:113:0:-:0;10836:13:42;:11;:13::i;:::-;13987:30:0::1;14005:11;13987:17;:30::i;5593:364:42:-:0;-1:-1:-1;;5799:27:42;5789:8;5786:41;5776:165;;5860:10;5854:4;5847:24;5922:4;5916;5909:18;2580:287:16;1830:1;2712:7;;:19;2704:63;;;;-1:-1:-1;;;2704:63:16;;21315:2:122;2704:63:16;;;21297:21:122;21354:2;21334:18;;;21327:30;21393:33;21373:18;;;21366:61;21444:18;;2704:63:16;21113:355:122;2704:63:16;1830:1;2842:7;:18;2580:287::o;30226:203:0:-;-1:-1:-1;;;;;30293:23:0;;30289:50;;30325:14;;-1:-1:-1;;;30325:14:0;;;;;;;;;;;30289:50;30350:8;:31;;-1:-1:-1;;30350:31:0;-1:-1:-1;;;;;30350:31:0;;;;;;;;30396:26;;4373:74:122;;;30396:26:0;;4361:2:122;4346:18;30396:26:0;4227:226:122;6721:269:10;-1:-1:-1;;;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;29821:192:0:-;29903:4;29934:14;;;:5;:14;;;;;;;;:26;;;3438:12:12;;:6;:12;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;29926:80:0;;;;29975:31;29988:7;29997:8;29975:12;:31::i;22160:138::-;22235:33;22248:7;22257:10;22235:12;:33::i;:::-;22230:61;;22277:14;;-1:-1:-1;;;22277:14:0;;;;;;;;;;;7917:233:12;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;7995:149;;8038:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8038:29:12;;;;;;;;;:36;;-1:-1:-1;;8038:36:12;8070:4;8038:36;;;8120:12;929:10:19;;850:96;8120:12:12;-1:-1:-1;;;;;8093:40:12;8111:7;-1:-1:-1;;;;;8093:40:12;8105:4;8093:40;;;;;;;;;;7917:233;;:::o;26159:151:0:-;26234:14;;;;:5;:14;;;;;;;:23;;;:69;;;;;-1:-1:-1;;;;;26234:23:0;;;;:32;;26274:9;;26234:69;;26285:5;;26292:10;;26234:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26159:151;;:::o;3768:103:12:-;3834:30;3845:4;929:10:19;3834::12;:30::i;8321:234::-;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;8400:149;;;8474:5;8442:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8442:29:12;;;;;;;;;;:37;;-1:-1:-1;;8442:37:12;;;8498:40;929:10:19;;8442:12:12;;8498:40;;8474:5;8498:40;8321:234;;:::o;26634:1879:0:-;26727:17;26817:14;;;:5;:14;;;;;26858:10;;;;26883;;26779:7;;26817:14;-1:-1:-1;;;;;26858:10:0;;26883:14;26879:808;;31880:4;26936:10;;26926:20;;:7;:20;:::i;:::-;26925:44;;;;:::i;:::-;26913:56;-1:-1:-1;26983:27:0;26913:56;26983:27;;:::i;:::-;;-1:-1:-1;27059:7:0;27029:26;26983:27;27029:9;:26;:::i;:::-;:37;27025:59;;27075:9;;;;;;;;;;;;;;27025:59;-1:-1:-1;;;;;;;27103:16:0;;;27099:578;;27167:65;;;;;;;;27187:10;27167:65;;27203:8;;-1:-1:-1;;;;;27203:8:0;27167:65;;;;;;;;;;27139:94;;27159:6;;27139:19;:94::i;:::-;;27099:578;;;27319:8;;27272:24;;27299:29;;27311:6;;-1:-1:-1;;;;;27319:8:0;27299:11;:29::i;:::-;27374:65;;;;;;;;27394:10;27374:65;;27410:8;;-1:-1:-1;;;;;27410:8:0;27374:65;;;;;;;;;;27272:56;;-1:-1:-1;27346:94:0;;27366:6;;27346:19;:94::i;:::-;-1:-1:-1;27504:8:0;;27458:23;;27484:29;;27496:6;;-1:-1:-1;;;;;27504:8:0;27484:11;:29::i;:::-;27458:55;-1:-1:-1;27628:34:0;27646:16;27458:55;27628:34;:::i;:::-;27616:46;;27254:423;;27099:578;-1:-1:-1;;;;;;;27701:16:0;;;27697:693;;27733:139;27770:6;27778:80;;;;;;;;27798:10;-1:-1:-1;;;;;27778:80:0;;;;;27822:9;-1:-1:-1;;;;;27778:80:0;;;;;27842:14;27778:80;;;27733:19;:139::i;:::-;;27697:693;;;27903:32;27938:39;27950:6;27966:9;27938:11;:39::i;:::-;27903:74;;27991:139;28028:6;28036:80;;;;;;;;28056:10;-1:-1:-1;;;;;28036:80:0;;;;;28080:9;-1:-1:-1;;;;;28036:80:0;;;;;28100:14;28036:80;;;27991:19;:139::i;:::-;;28144:31;28178:39;28190:6;28206:9;28178:11;:39::i;:::-;28144:73;-1:-1:-1;28329:50:0;28355:24;28144:73;28329:50;:::i;:::-;28312:67;;27889:501;;27697:693;28400:44;;;;;;;;4604:25:122;;;-1:-1:-1;;;;;28400:28:0;;;;;4577:18:122;;28400:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28460:46:0;;;22362:25:122;;;22418:2;22403:18;;22396:34;;;28471:7:0;;-1:-1:-1;28460:46:0;;-1:-1:-1;22335:18:122;28460:46:0;;;;;;;26717:1796;;;;26634:1879;;;:::o;21910:142::-;21987:35;22002:7;22011:10;21987:14;:35::i;5040:495:42:-;-1:-1:-1;;5416:16:42;;-1:-1:-1;;;;;5272:26:42;;;;;;5376:38;5373:1;;5365:78;5492:27;5040:495::o;4749:279:6:-;4867:36;;-1:-1:-1;;4884:10:6;22618:2:122;22614:15;22610:53;4867:36:6;;;22598:66:122;22680:12;;;22673:28;;;4823:7:6;;;;22717:12:122;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;23131:2681:0:-;23424:8;;:57;;;;;;;;22914:25:122;;;23470:10:0;22955:18:122;;;22948:83;23393:14:0;;-1:-1:-1;;;;;23424:8:0;;:33;;22887:18:122;;23424:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23419:85;;23490:14;;-1:-1:-1;;;23490:14:0;;;;;;;;;;;23419:85;23526:10;;23524:12;;;;;:::i;:::-;;;;;-1:-1:-1;23764:33:0;;23524:12;;-1:-1:-1;23524:12:0;;23675:25;;23764:33;;23524:12;;23764:33;;23554:19:122;;;23603:7;23598:2;23589:12;;23582:29;23636:2;23627:12;;23324:321;23764:33:0;;;;-1:-1:-1;;23764:33:0;;;;;;;;;23754:44;;23764:33;23754:44;;;;23864:228;;;;;;;;-1:-1:-1;;;;;23864:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23845:16;24159:13;;;:5;:13;;;;;;:20;;;;;;;;;;;;;;-1:-1:-1;;24159:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23754:44;;-1:-1:-1;23764:33:0;;24159:13;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;;24159:20:0;;;;;;;;;;;;;;;;;;24239:39;24250:15;24267:10;24239;:39::i;:::-;24337:49;24351:17;24370:15;24337:13;:49::i;:::-;24541:47;;;;;-1:-1:-1;;;;;24541:20:0;;;;;:47;;24562:6;;24570:17;;24541:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24628:6;24603:9;-1:-1:-1;;;;;24603:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;:80;;;;24678:4;-1:-1:-1;;;;;24638:45:0;24646:9;-1:-1:-1;;;;;24646:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24638:45:0;;;24603:80;24599:103;;;24692:10;;-1:-1:-1;;;24692:10:0;;;;;;;;;;;24599:103;24775:16;;24750:22;24801:266;24821:14;24817:1;:18;24801:266;;;24852:15;24870:9;24880:1;24870:12;;;;;;;;:::i;:::-;;;;;;;24852:30;;24919:1;-1:-1:-1;;;;;24900:21:0;:7;-1:-1:-1;;;;;24900:21:0;;24896:48;;24930:14;;-1:-1:-1;;;24930:14:0;;;;;;;;;;;24896:48;24959:38;24970:17;24989:7;24959:10;:38::i;:::-;-1:-1:-1;25039:3:0;;24801:266;;;-1:-1:-1;25081:7:0;;:11;25077:554;;-1:-1:-1;;;;;25359:16:0;;4445:42:9;25359:16:0;:52;;;;;25401:9;25390:7;25380;;:17;;;;:::i;:::-;:30;;25359:52;25358:100;;;-1:-1:-1;;;;;;25417:16:0;;4445:42:9;25417:16:0;;;;:40;;;25448:9;25437:7;;:20;;25417:40;25354:164;;;25485:18;;-1:-1:-1;;;25485:18:0;;;;;;;;;;;25354:164;25555:8;;25565:7;;25531:42;;4445::9;;-1:-1:-1;;;;;25555:8:0;;;;25531:15;:42::i;:::-;25604:6;25592:28;25612:7;;25592:28;;;;4604:25:122;;4592:2;4577:18;;4458:177;25592:28:0;;;;;;;;25077:554;25645:11;;25641:79;;25672:37;25682:7;25691:6;25699:9;25672;:37::i;:::-;25755:10;25747:6;25735:70;25767:9;25778:6;25786:7;25795:9;25735:70;;;;;;;;;:::i;:::-;;;;;;;;23409:2403;;;;23131:2681;;;;;;;;;:::o;30642:199::-;-1:-1:-1;;;;;30717:23:0;;30713:50;;30749:14;;-1:-1:-1;;;30749:14:0;;;;;;;;;;;30713:50;30774:8;:20;;-1:-1:-1;;30774:20:0;-1:-1:-1;;;;;30774:20:0;;;;;;;;30809:25;;4373:74:122;;;30809:25:0;;4361:2:122;4346:18;30809:25:0;4227:226:122;31426:125:0;31487:7;:18;;;31521:23;;4604:25:122;;;31521:23:0;;4592:2:122;4577:18;31521:23:0;4458:177:122;4520:448:42;-1:-1:-1;;;;;4709:26:42;-1:-1:-1;;4784:38:42;;;4709:26;4940:1;4900:38;4940:1;;4889:63;4520:448;:::o;31041:198:0:-;31126:4;31112:11;:18;31108:44;;;31139:13;;;;;;;;;;;;;;31108:44;31163:10;:24;;;31203:29;;4604:25:122;;;31203:29:0;;4592:2:122;4577:18;31203:29:0;4458:177:122;29346:153:0;29426:4;29457:14;;;:5;:14;;;;;;;;:24;;;3438:12:12;;:6;:12;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;29449:43:0;3329:145:12;2455:490:44;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;4152:501:12:-;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;4235:412;;4423:39;4454:7;4423:30;:39::i;:::-;4533:49;4572:4;4579:2;4533:30;:49::i;:::-;4330:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4330:274:12;;;;;;;;;;-1:-1:-1;;;4278:358:12;;;;;;;:::i;6019:500:10:-;6150:20;;;;6117:4;;-1:-1:-1;;;;;;;6184:16:10;;;6180:312;;6260:6;6248:9;:18;6244:48;;;6275:17;;;;;;;;;;;;;;6244:48;6307:57;6339:13;:16;;;6357:6;6307:31;:57::i;:::-;6180:312;;;6395:86;6428:6;6436:13;:18;;;6456:13;:16;;;6474:6;6395:32;:86::i;:::-;-1:-1:-1;6508:4:10;;6019:500;-1:-1:-1;;;6019:500:10:o;7224:263::-;7302:7;-1:-1:-1;;;;;;;7325:16:10;;;7321:160;;-1:-1:-1;;;;;;7364:25:10;;;7357:32;;7321:160;7427:43;7453:6;7461:8;7427:25;:43::i;:::-;7420:50;;;;2118:794:14;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:14;;2847:58;;;;-1:-1:-1;;;2847:58:14;;26275:2:122;2847:58:14;;;26257:21:122;26314:2;26294:18;;;26287:30;26353:25;26333:18;;;26326:53;26396:18;;2847:58:14;26073:347:122;7502:247:12;7585:25;4934:12;;;:6;:12;;;;;;:22;;;;7641:34;;;;7690:52;;4934:22;;7641:34;;4934:22;;:12;;7690:52;;7585:25;7690:52;7575:174;7502:247;;:::o;2473:149:20:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:20;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:20;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:20;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:20;;;;;;;;-1:-1:-1;2096:9:20;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:20;;;;;;;;-1:-1:-1;2207:1:20;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:20;;2228:55;;;;-1:-1:-1;;;2228:55:20;;26768:2:122;2228:55:20;;;26750:21:122;;;26787:18;;;26780:30;26846:34;26826:18;;;26819:62;26898:18;;2228:55:20;26566:356:122;7671:1379:44;7854:4;7848:11;7920:6;7914:4;7907:20;7985:2;7979:4;7972:16;8050:4;8046:2;8042:13;8036:4;8029:27;8199:34;8193:4;8186:48;8657:4;8651;8645;8639;8636:1;8629:5;8622;8617:45;8577:16;8570:24;8566:1;8559:4;8553:11;8550:18;8547:48;8275:405;8248:659;;8800:10;8794:4;8787:24;8888:4;8882;8875:18;8248:659;8934:1;8928:4;8921:15;8990:4;8983:15;-1:-1:-1;;;;7671:1379:44:o;18299:722::-;18373:14;18478:7;18472:4;18465:21;18613:34;18607:4;18600:48;18960:4;18954;18948;18942;18935:5;18928;18917:48;18855:4;18837:16;18834:26;18745:242;18718:4;18712:11;18687:318;18661:344;;18299:722;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:332:122:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:154;-1:-1:-1;;;;;622:5:122;618:54;611:5;608:65;598:93;;687:1;684;677:12;702:247;761:6;814:2;802:9;793:7;789:23;785:32;782:52;;;830:1;827;820:12;782:52;869:9;856:23;888:31;913:5;888:31;:::i;954:180::-;1013:6;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;-1:-1:-1;1105:23:122;;954:180;-1:-1:-1;954:180:122:o;1139:250::-;1224:1;1234:113;1248:6;1245:1;1242:13;1234:113;;;1324:11;;;1318:18;1305:11;;;1298:39;1270:2;1263:10;1234:113;;;-1:-1:-1;;1381:1:122;1363:16;;1356:27;1139:250::o;1394:271::-;1436:3;1474:5;1468:12;1501:6;1496:3;1489:19;1517:76;1586:6;1579:4;1574:3;1570:14;1563:4;1556:5;1552:16;1517:76;:::i;:::-;1647:2;1626:15;-1:-1:-1;;1622:29:122;1613:39;;;;1654:4;1609:50;;1394:271;-1:-1:-1;;1394:271:122:o;1670:252::-;1757:5;1751:12;1746:3;1739:25;1721:3;1810:4;1803:5;1799:16;1793:23;1848:4;1841;1836:3;1832:14;1825:28;1869:47;1910:4;1905:3;1901:14;1887:12;1869:47;:::i;1927:797::-;2100:2;2089:9;2082:21;2145:6;2139:13;2134:2;2123:9;2119:18;2112:41;2063:4;2200:2;2192:6;2188:15;2182:22;-1:-1:-1;;;;;2319:2:122;2305:12;2301:21;2296:2;2285:9;2281:18;2274:49;2387:2;2381;2373:6;2369:15;2363:22;2359:31;2354:2;2343:9;2339:18;2332:59;;;2440:2;2432:6;2428:15;2422:22;2481:4;2475:3;2464:9;2460:19;2453:33;2509:63;2567:3;2556:9;2552:19;2536:14;2509:63;:::i;:::-;2495:77;;2627:3;2619:6;2615:16;2609:23;2603:3;2592:9;2588:19;2581:52;2689:3;2681:6;2677:16;2671:23;2664:4;2653:9;2649:20;2642:53;2712:6;2704:14;;;1927:797;;;;:::o;2729:184::-;-1:-1:-1;;;2778:1:122;2771:88;2878:4;2875:1;2868:15;2902:4;2899:1;2892:15;2918:275;2989:2;2983:9;3054:2;3035:13;;-1:-1:-1;;3031:27:122;3019:40;;3089:18;3074:34;;3110:22;;;3071:62;3068:88;;;3136:18;;:::i;:::-;3172:2;3165:22;2918:275;;-1:-1:-1;2918:275:122:o;3198:406::-;3262:5;3296:18;3288:6;3285:30;3282:56;;;3318:18;;:::i;:::-;3356:57;3401:2;3380:15;;-1:-1:-1;;3376:29:122;3407:4;3372:40;3356:57;:::i;:::-;3347:66;;3436:6;3429:5;3422:21;3476:3;3467:6;3462:3;3458:16;3455:25;3452:45;;;3493:1;3490;3483:12;3452:45;3542:6;3537:3;3530:4;3523:5;3519:16;3506:43;3596:1;3589:4;3580:6;3573:5;3569:18;3565:29;3558:40;3198:406;;;;;:::o;3609:220::-;3651:5;3704:3;3697:4;3689:6;3685:17;3681:27;3671:55;;3722:1;3719;3712:12;3671:55;3744:79;3819:3;3810:6;3797:20;3790:4;3782:6;3778:17;3744:79;:::i;3834:388::-;3911:6;3919;3972:2;3960:9;3951:7;3947:23;3943:32;3940:52;;;3988:1;3985;3978:12;3940:52;4024:9;4011:23;4001:33;;4085:2;4074:9;4070:18;4057:32;4112:18;4104:6;4101:30;4098:50;;;4144:1;4141;4134:12;4098:50;4167:49;4208:7;4199:6;4188:9;4184:22;4167:49;:::i;:::-;4157:59;;;3834:388;;;;;:::o;4640:183::-;4700:4;4733:18;4725:6;4722:30;4719:56;;;4755:18;;:::i;:::-;-1:-1:-1;4800:1:122;4796:14;4812:4;4792:25;;4640:183::o;4828:886::-;4880:5;4933:3;4926:4;4918:6;4914:17;4910:27;4900:55;;4951:1;4948;4941:12;4900:55;4987:6;4974:20;5013:4;5037:60;5053:43;5093:2;5053:43;:::i;:::-;5037:60;:::i;:::-;5131:15;;;5217:1;5213:10;;;;5201:23;;5197:32;;;5162:12;;;;5241:15;;;5238:35;;;5269:1;5266;5259:12;5238:35;5305:2;5297:6;5293:15;5317:368;5333:6;5328:3;5325:15;5317:368;;;5419:3;5406:17;5455:18;5442:11;5439:35;5436:125;;;5515:1;5544:2;5540;5533:14;5436:125;5586:56;5638:3;5633:2;5619:11;5611:6;5607:24;5603:33;5586:56;:::i;:::-;5574:69;;-1:-1:-1;5663:12:122;;;;5350;;5317:368;;;-1:-1:-1;5703:5:122;4828:886;-1:-1:-1;;;;;;4828:886:122:o;5719:1147::-;5846:6;5854;5907:2;5895:9;5886:7;5882:23;5878:32;5875:52;;;5923:1;5920;5913:12;5875:52;5963:9;5950:23;5992:18;6033:2;6025:6;6022:14;6019:34;;;6049:1;6046;6039:12;6019:34;6087:6;6076:9;6072:22;6062:32;;6132:7;6125:4;6121:2;6117:13;6113:27;6103:55;;6154:1;6151;6144:12;6103:55;6190:2;6177:16;6212:4;6236:60;6252:43;6292:2;6252:43;:::i;6236:60::-;6330:15;;;6412:1;6408:10;;;;6400:19;;6396:28;;;6361:12;;;;6436:19;;;6433:39;;;6468:1;6465;6458:12;6433:39;6492:11;;;;6512:142;6528:6;6523:3;6520:15;6512:142;;;6594:17;;6582:30;;6545:12;;;;6632;;;;6512:142;;;6673:5;-1:-1:-1;;6716:18:122;;6703:32;;-1:-1:-1;;6747:16:122;;;6744:36;;;6776:1;6773;6766:12;6744:36;;6799:61;6852:7;6841:8;6830:9;6826:24;6799:61;:::i;6871:484::-;6924:3;6962:5;6956:12;6989:6;6984:3;6977:19;7015:4;7044:2;7039:3;7035:12;7028:19;;7081:2;7074:5;7070:14;7102:1;7112:218;7126:6;7123:1;7120:13;7112:218;;;7191:13;;-1:-1:-1;;;;;7187:62:122;7175:75;;7270:12;;;;7305:15;;;;7148:1;7141:9;7112:218;;;-1:-1:-1;7346:3:122;;6871:484;-1:-1:-1;;;;;6871:484:122:o;7360:261::-;7539:2;7528:9;7521:21;7502:4;7559:56;7611:2;7600:9;7596:18;7588:6;7559:56;:::i;7993:388::-;8061:6;8069;8122:2;8110:9;8101:7;8097:23;8093:32;8090:52;;;8138:1;8135;8128:12;8090:52;8177:9;8164:23;8196:31;8221:5;8196:31;:::i;:::-;8246:5;-1:-1:-1;8303:2:122;8288:18;;8275:32;8316:33;8275:32;8316:33;:::i;:::-;8368:7;8358:17;;;7993:388;;;;;:::o;8386:315::-;8454:6;8462;8515:2;8503:9;8494:7;8490:23;8486:32;8483:52;;;8531:1;8528;8521:12;8483:52;8567:9;8554:23;8544:33;;8627:2;8616:9;8612:18;8599:32;8640:31;8665:5;8640:31;:::i;9026:737::-;9080:5;9133:3;9126:4;9118:6;9114:17;9110:27;9100:55;;9151:1;9148;9141:12;9100:55;9187:6;9174:20;9213:4;9237:60;9253:43;9293:2;9253:43;:::i;9237:60::-;9331:15;;;9417:1;9413:10;;;;9401:23;;9397:32;;;9362:12;;;;9441:15;;;9438:35;;;9469:1;9466;9459:12;9438:35;9505:2;9497:6;9493:15;9517:217;9533:6;9528:3;9525:15;9517:217;;;9613:3;9600:17;9630:31;9655:5;9630:31;:::i;:::-;9674:18;;9712:12;;;;9550;;9517:217;;9768:635;9879:6;9887;9895;9948:2;9936:9;9927:7;9923:23;9919:32;9916:52;;;9964:1;9961;9954:12;9916:52;10000:9;9987:23;9977:33;;10061:2;10050:9;10046:18;10033:32;10084:18;10125:2;10117:6;10114:14;10111:34;;;10141:1;10138;10131:12;10111:34;10164:61;10217:7;10208:6;10197:9;10193:22;10164:61;:::i;:::-;10154:71;;10278:2;10267:9;10263:18;10250:32;10234:48;;10307:2;10297:8;10294:16;10291:36;;;10323:1;10320;10313:12;10291:36;;10346:51;10389:7;10378:8;10367:9;10363:24;10346:51;:::i;:::-;10336:61;;;9768:635;;;;;:::o;10904:248::-;10972:6;10980;11033:2;11021:9;11012:7;11008:23;11004:32;11001:52;;;11049:1;11046;11039:12;11001:52;-1:-1:-1;;11072:23:122;;;11142:2;11127:18;;;11114:32;;-1:-1:-1;10904:248:122:o;11157:734::-;11212:5;11260:4;11248:9;11243:3;11239:19;11235:30;11232:50;;;11278:1;11275;11268:12;11232:50;11311:4;11305:11;11355:4;11347:6;11343:17;11379:18;11447:6;11435:10;11432:22;11427:2;11415:10;11412:18;11409:46;11406:72;;;11458:18;;:::i;:::-;11500:10;11494:4;11487:24;11529:6;11520:15;;11572:9;11559:23;11551:6;11544:39;11634:2;11623:9;11619:18;11606:32;11592:46;;11661:2;11653:6;11650:14;11647:34;;;11677:1;11674;11667:12;11647:34;-1:-1:-1;11700:22:122;;11753:4;11745:13;;11741:23;-1:-1:-1;11731:51:122;;11778:1;11775;11768:12;11731:51;11815:69;11880:3;11875:2;11862:16;11857:2;11853;11849:11;11815:69;:::i;:::-;11810:2;11802:6;11798:15;11791:94;;;11157:734;;;;:::o;11896:415::-;11990:6;11998;12051:2;12039:9;12030:7;12026:23;12022:32;12019:52;;;12067:1;12064;12057:12;12019:52;12103:9;12090:23;12080:33;;12164:2;12153:9;12149:18;12136:32;12191:18;12183:6;12180:30;12177:50;;;12223:1;12220;12213:12;12177:50;12246:59;12297:7;12288:6;12277:9;12273:22;12246:59;:::i;12316:1208::-;12489:6;12497;12505;12513;12521;12529;12537;12590:3;12578:9;12569:7;12565:23;12561:33;12558:53;;;12607:1;12604;12597:12;12558:53;12643:9;12630:23;12620:33;;12703:2;12692:9;12688:18;12675:32;12716:31;12741:5;12716:31;:::i;:::-;12766:5;-1:-1:-1;12822:2:122;12807:18;;12794:32;12845:18;12875:14;;;12872:34;;;12902:1;12899;12892:12;12872:34;12925:49;12966:7;12957:6;12946:9;12942:22;12925:49;:::i;:::-;12915:59;;13026:2;13015:9;13011:18;12998:32;12983:47;;13039:33;13064:7;13039:33;:::i;:::-;13091:7;;-1:-1:-1;13145:3:122;13130:19;;13117:33;;-1:-1:-1;13203:3:122;13188:19;;13175:33;;13220:16;;;13217:36;;;13249:1;13246;13239:12;13217:36;13272:61;13325:7;13314:8;13303:9;13299:24;13272:61;:::i;:::-;13262:71;;13386:3;13375:9;13371:19;13358:33;13342:49;;13416:2;13406:8;13403:16;13400:36;;;13432:1;13429;13422:12;13400:36;;13455:63;13510:7;13499:8;13488:9;13484:24;13455:63;:::i;:::-;13445:73;;;12316:1208;;;;;;;;;;:::o;13789:675::-;13892:6;13900;13908;13916;13924;13977:3;13965:9;13956:7;13952:23;13948:33;13945:53;;;13994:1;13991;13984:12;13945:53;14033:9;14020:23;14052:31;14077:5;14052:31;:::i;:::-;14102:5;-1:-1:-1;14159:2:122;14144:18;;14131:32;14172:33;14131:32;14172:33;:::i;:::-;14224:7;-1:-1:-1;14283:2:122;14268:18;;14255:32;14296:33;14255:32;14296:33;:::i;:::-;13789:675;;;;-1:-1:-1;14348:7:122;;14402:2;14387:18;;14374:32;;-1:-1:-1;14453:3:122;14438:19;14425:33;;13789:675;-1:-1:-1;;13789:675:122:o;14469:854::-;14598:6;14606;14614;14667:2;14655:9;14646:7;14642:23;14638:32;14635:52;;;14683:1;14680;14673:12;14635:52;14723:9;14710:23;14752:18;14793:2;14785:6;14782:14;14779:34;;;14809:1;14806;14799:12;14779:34;14847:6;14836:9;14832:22;14822:32;;14892:7;14885:4;14881:2;14877:13;14873:27;14863:55;;14914:1;14911;14904:12;14863:55;14954:2;14941:16;14980:2;14972:6;14969:14;14966:34;;;14996:1;14993;14986:12;14966:34;15051:7;15044:4;15034:6;15031:1;15027:14;15023:2;15019:23;15015:34;15012:47;15009:67;;;15072:1;15069;15062:12;15009:67;15103:4;15095:13;;;;-1:-1:-1;15127:6:122;-1:-1:-1;15171:20:122;;;15158:34;;15204:16;;;15201:36;;;15233:1;15230;15223:12;15201:36;;15256:61;15309:7;15298:8;15287:9;15283:24;15256:61;:::i;15328:437::-;15407:1;15403:12;;;;15450;;;15471:61;;15525:4;15517:6;15513:17;15503:27;;15471:61;15578:2;15570:6;15567:14;15547:18;15544:38;15541:218;;-1:-1:-1;;;15612:1:122;15605:88;15716:4;15713:1;15706:15;15744:4;15741:1;15734:15;15541:218;;15328:437;;;:::o;15770:338::-;15945:2;15934:9;15927:21;15908:4;15965:45;16006:2;15995:9;15991:18;15983:6;15965:45;:::i;:::-;15957:53;;-1:-1:-1;;;;;16050:6:122;16046:55;16041:2;16030:9;16026:18;16019:83;15770:338;;;;;:::o;16113:251::-;16183:6;16236:2;16224:9;16215:7;16211:23;16207:32;16204:52;;;16252:1;16249;16242:12;16204:52;16284:9;16278:16;16303:31;16328:5;16303:31;:::i;16369:184::-;-1:-1:-1;;;16418:1:122;16411:88;16518:4;16515:1;16508:15;16542:4;16539:1;16532:15;16558:184;16628:6;16681:2;16669:9;16660:7;16656:23;16652:32;16649:52;;;16697:1;16694;16687:12;16649:52;-1:-1:-1;16720:16:122;;16558:184;-1:-1:-1;16558:184:122:o;17163:542::-;17416:2;17405:9;17398:21;17379:4;17442:56;17494:2;17483:9;17479:18;17471:6;17442:56;:::i;:::-;17546:9;17538:6;17534:22;17529:2;17518:9;17514:18;17507:50;17574:33;17600:6;17592;17574:33;:::i;:::-;17566:41;;;-1:-1:-1;;;;;17647:6:122;17643:55;17638:2;17627:9;17623:18;17616:83;17163:542;;;;;;:::o;17836:545::-;17938:2;17933:3;17930:11;17927:448;;;17974:1;17999:5;17995:2;17988:17;18044:4;18040:2;18030:19;18114:2;18102:10;18098:19;18095:1;18091:27;18085:4;18081:38;18150:4;18138:10;18135:20;18132:47;;;-1:-1:-1;18173:4:122;18132:47;18228:2;18223:3;18219:12;18216:1;18212:20;18206:4;18202:31;18192:41;;18283:82;18301:2;18294:5;18291:13;18283:82;;;18346:17;;;18327:1;18316:13;18283:82;;;18287:3;;;17836:545;;;:::o;18557:1352::-;18683:3;18677:10;18710:18;18702:6;18699:30;18696:56;;;18732:18;;:::i;:::-;18761:97;18851:6;18811:38;18843:4;18837:11;18811:38;:::i;:::-;18805:4;18761:97;:::i;:::-;18913:4;;18977:2;18966:14;;18994:1;18989:663;;;;19696:1;19713:6;19710:89;;;-1:-1:-1;19765:19:122;;;19759:26;19710:89;-1:-1:-1;;18514:1:122;18510:11;;;18506:24;18502:29;18492:40;18538:1;18534:11;;;18489:57;19812:81;;18959:944;;18989:663;17783:1;17776:14;;;17820:4;17807:18;;-1:-1:-1;;19025:20:122;;;19143:236;19157:7;19154:1;19151:14;19143:236;;;19246:19;;;19240:26;19225:42;;19338:27;;;;19306:1;19294:14;;;;19173:19;;19143:236;;;19147:3;19407:6;19398:7;19395:19;19392:201;;;19468:19;;;19462:26;-1:-1:-1;;19551:1:122;19547:14;;;19563:3;19543:24;19539:37;19535:42;19520:58;19505:74;;19392:201;-1:-1:-1;;;;;19639:1:122;19623:14;;;19619:22;19606:36;;-1:-1:-1;18557:1352:122:o;19914:261::-;20095:2;20084:9;20077:21;20058:4;20115:54;20165:2;20154:9;20150:18;20142:6;20115:54;:::i;20180:184::-;-1:-1:-1;;;20229:1:122;20222:88;20329:4;20326:1;20319:15;20353:4;20350:1;20343:15;20369:135;20408:3;20429:17;;;20426:43;;20449:18;;:::i;:::-;-1:-1:-1;20496:1:122;20485:13;;20369:135::o;21473:168::-;21546:9;;;21577;;21594:15;;;21588:22;;21574:37;21564:71;;21615:18;;:::i;21646:274::-;21686:1;21712;21702:189;;-1:-1:-1;;;21744:1:122;21737:88;21848:4;21845:1;21838:15;21876:4;21873:1;21866:15;21702:189;-1:-1:-1;21905:9:122;;21646:274::o;21925:128::-;21992:9;;;22013:11;;;22010:37;;;22027:18;;:::i;22058:125::-;22123:9;;;22144:10;;;22141:36;;;22157:18;;:::i;23042:277::-;23109:6;23162:2;23150:9;23141:7;23137:23;23133:32;23130:52;;;23178:1;23175;23168:12;23130:52;23210:9;23204:16;23263:5;23256:13;23249:21;23242:5;23239:32;23229:60;;23285:1;23282;23275:12;23650:289;23825:6;23814:9;23807:25;23868:2;23863;23852:9;23848:18;23841:30;23788:4;23888:45;23929:2;23918:9;23914:18;23906:6;23888:45;:::i;24214:573::-;24460:4;-1:-1:-1;;;;;24570:2:122;24562:6;24558:15;24547:9;24540:34;24622:2;24614:6;24610:15;24605:2;24594:9;24590:18;24583:43;;24662:6;24657:2;24646:9;24642:18;24635:34;24705:3;24700:2;24689:9;24685:18;24678:31;24726:55;24776:3;24765:9;24761:19;24753:6;24726:55;:::i;:::-;24718:63;24214:573;-1:-1:-1;;;;;;24214:573:122:o;25031:812::-;25442:25;25437:3;25430:38;25412:3;25497:6;25491:13;25513:75;25581:6;25576:2;25571:3;25567:12;25560:4;25552:6;25548:17;25513:75;:::i;:::-;25652:19;25647:2;25607:16;;;25639:11;;;25632:40;25697:13;;25719:76;25697:13;25781:2;25773:11;;25766:4;25754:17;;25719:76;:::i;:::-;25815:17;25834:2;25811:26;;25031:812;-1:-1:-1;;;;25031:812:122:o;25848:220::-;25997:2;25986:9;25979:21;25960:4;26017:45;26058:2;26047:9;26043:18;26035:6;26017:45;:::i;26425:136::-;26464:3;26492:5;26482:39;;26501:18;;:::i;:::-;-1:-1:-1;;;26537:18:122;;26425:136::o","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","addPoolManager(uint256,address)":"2cf682b0","addToCloneableStrategies(address)":"41bba0b4","allocate(uint256,bytes)":"2ec38188","batchAllocate(uint256[],bytes[])":"c6dff1cf","batchRegisterRecipient(uint256[],bytes[])":"1a20bd88","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"77da8caf","createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","distribute(uint256,address[],bytes)":"3a5fbd92","fundPool(uint256,uint256)":"5acd6fac","getBaseFee()":"15e812ad","getFeeDenominator()":"f4e1fc41","getPercentFee()":"4edbaadc","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53","getRoleAdmin(bytes32)":"248a9ca3","getStrategy(uint256)":"cfc0cc34","getTreasury()":"3b19e84a","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address,address,uint256,uint256)":"a6b63eb8","isCloneableStrategy(address)":"ab2ec589","isPoolAdmin(uint256,address)":"ab3febc6","isPoolManager(uint256,address)":"29e40d4b","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","recoverFunds(address,address)":"24ae6a27","registerRecipient(uint256,bytes)":"075c0e9c","removeFromCloneableStrategies(address)":"031e2fa1","removePoolManager(uint256,address)":"7f5a70bd","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","requestOwnershipHandover()":"25692962","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","updateBaseFee(uint256)":"8e690186","updatePercentFee(uint256)":"f54fc4a0","updatePoolMetadata(uint256,(uint256,string))":"5f9ca138","updateRegistry(address)":"1a5da6c8","updateTreasury(address)":"7f51bb1f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BaseFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentFee\",\"type\":\"uint256\"}],\"name\":\"PercentFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"PoolFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"addToCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_datas\",\"type\":\"bytes[]\"}],\"name\":\"batchAllocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"batchRegisterRecipient\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"recipientIds\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"fundPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"FEE_DENOMINATOR\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getStrategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"isCloneableStrategy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeFromCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removePoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"updateBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"}],\"name\":\"updatePercentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updatePoolMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"The contract must be initialized with the 'initialize()' function.\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"params\":{\"amount\":\"Amount of the base fee paid\",\"poolId\":\"ID of the pool the base fee was paid for\"}},\"BaseFeeUpdated(uint256)\":{\"params\":{\"baseFee\":\"New base fee amount\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"PercentFeeUpdated(uint256)\":{\"params\":{\"percentFee\":\"New percentage for the fee\"}},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"params\":{\"amount\":\"Amount pool was funded with when created\",\"metadata\":\"Pool metadata\",\"poolId\":\"ID of the pool created\",\"profileId\":\"ID of the profile the pool is associated with\",\"strategy\":\"Address of the strategy contract\",\"token\":\"Address of the token pool was funded with when created\"}},\"PoolFunded(uint256,uint256,uint256)\":{\"params\":{\"amount\":\"Amount funded to the pool\",\"fee\":\"Amount of the fee paid to the treasury\",\"poolId\":\"ID of the pool funded\"}},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"params\":{\"metadata\":\"Pool metadata that was updated\",\"poolId\":\"ID of the pool updated\"}},\"RegistryUpdated(address)\":{\"params\":{\"registry\":\"Address of the new registry\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"StrategyApproved(address)\":{\"params\":{\"strategy\":\"Address of the strategy approved\"}},\"StrategyRemoved(address)\":{\"params\":{\"strategy\":\"Address of the strategy removed\"}},\"TreasuryUpdated(address)\":{\"params\":{\"treasury\":\"Address of the new treasury\"}}},\"kind\":\"dev\",\"methods\":{\"addPoolManager(uint256,address)\":{\"details\":\"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to add\",\"_poolId\":\"ID of the pool\"}},\"addToCloneableStrategies(address)\":{\"details\":\"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"allocate(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().\",\"params\":{\"_data\":\"Encoded data unique to the strategy for that pool\",\"_poolId\":\"ID of the pool\"}},\"batchAllocate(uint256[],bytes[])\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.\",\"params\":{\"_datas\":\"encoded data unique to the strategy for that pool\",\"_poolIds\":\"IDs of the pools\"}},\"batchRegisterRecipient(uint256[],bytes[])\":{\"details\":\"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\",\"params\":{\"_data\":\"An array of encoded data unique to a strategy that registerRecipient() requires.\",\"_poolIds\":\"ID's of the pools\"},\"returns\":{\"recipientIds\":\"The recipient IDs that have been registered\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"custom:initstrategydata\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'\",\"details\":\"'msg.sender' must be owner or member of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool\",\"_metadata\":\"The metadata of the pool\",\"_profileId\":\"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the strategy contract the pool will use.\",\"_token\":\"The address of the token\"}},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"details\":\"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token you want to deposit into the pool on initialization\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool, and can be added/removed later by the pool admin\",\"_metadata\":\"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\",\"_profileId\":\"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the deployed custom strategy\",\"_token\":\"The address of the token you want to use in your pool\"},\"returns\":{\"poolId\":\"The ID of the pool\"}},\"distribute(uint256,address[],bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.\",\"params\":{\"_data\":\"Encoded data unique to the strategy\",\"_poolId\":\"ID of the pool\",\"_recipientIds\":\"Ids of the recipients of the distribution\"}},\"fundPool(uint256,uint256)\":{\"details\":\"Anyone can fund a pool and call this function.\",\"params\":{\"_amount\":\"The amount to be deposited into the pool\",\"_poolId\":\"ID of the pool\"}},\"getBaseFee()\":{\"returns\":{\"_0\":\"The base fee\"}},\"getFeeDenominator()\":{\"returns\":{\"FEE_DENOMINATOR\":\"The fee denominator is (1e18) which represents 100%\"}},\"getPercentFee()\":{\"returns\":{\"_0\":\"The fee percentage (1e18 = 100%)\"}},\"getPool(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The 'Pool' struct\"}},\"getRegistry()\":{\"returns\":{\"_0\":\"The registry address\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStrategy(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The address of the strategy\"}},\"getTreasury()\":{\"returns\":{\"_0\":\"The treasury address\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address,address,uint256,uint256)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer\",\"params\":{\"_baseFee\":\"The base fee\",\"_owner\":\"The owner of allo\",\"_percentFee\":\"The percentage fee\",\"_registry\":\"The address of the registry\",\"_treasury\":\"The address of the treasury\"}},\"isCloneableStrategy(address)\":{\"params\":{\"_strategy\":\"The address of the strategy\"},\"returns\":{\"_0\":\"'true' if the strategy is cloneable, otherwise 'false'\"}},\"isPoolAdmin(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool admin, otherwise 'false'\"}},\"isPoolManager(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool manager, otherwise 'false'\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be Allo owner\",\"params\":{\"_recipient\":\"The recipient\",\"_token\":\"The token to transfer\"}},\"registerRecipient(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().\",\"params\":{\"_data\":\"Encoded data unique to a strategy that registerRecipient() requires\",\"_poolId\":\"ID of the pool\"},\"returns\":{\"_0\":\"recipientId The recipient ID that has been registered\"}},\"removeFromCloneableStrategies(address)\":{\"details\":\"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"removePoolManager(uint256,address)\":{\"details\":\"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to remove\",\"_poolId\":\"ID of the pool\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"updateBaseFee(uint256)\":{\"details\":\"Use this to update the base fee. 'msg.sender' must be Allo owner.\",\"params\":{\"_baseFee\":\"The new base fee\"}},\"updatePercentFee(uint256)\":{\"details\":\"Use this to update the fee percentage. 'msg.sender' must be Allo owner.\",\"params\":{\"_percentFee\":\"The new fee\"}},\"updatePoolMetadata(uint256,(uint256,string))\":{\"details\":\"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\",\"params\":{\"_metadata\":\"The new metadata of the pool\",\"_poolId\":\"ID of the pool\"}},\"updateRegistry(address)\":{\"details\":\"Use this to update the registry address. 'msg.sender' must be Allo owner.\",\"params\":{\"_registry\":\"The new registry address\"}},\"updateTreasury(address)\":{\"details\":\"Use this to update the treasury address. 'msg.sender' must be Allo owner.\",\"params\":{\"_treasury\":\"The new treasury address\"}}},\"stateVariables\":{\"_nonces\":{\"details\":\"'msg.sender' -> 'nonce' for cloning strategies\"},\"baseFee\":{\"details\":\"This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address.\"},\"cloneableStrategies\":{\"details\":\"Strategy.address -> bool\"},\"percentFee\":{\"details\":\"How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%\"},\"pools\":{\"details\":\"'Pool.id' -> 'Pool'\"}},\"title\":\"Allo\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"notice\":\"Emitted when the base fee is paid\"},\"BaseFeeUpdated(uint256)\":{\"notice\":\"Emitted when the base fee is updated\"},\"PercentFeeUpdated(uint256)\":{\"notice\":\"Emitted when the percent fee is updated\"},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"notice\":\"Event emitted when a new pool is created\"},\"PoolFunded(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a pool is funded\"},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"notice\":\"Emitted when a pools metadata is updated\"},\"RegistryUpdated(address)\":{\"notice\":\"Emitted when the registry address is updated\"},\"StrategyApproved(address)\":{\"notice\":\"Emitted when a strategy is approved and added to the cloneable strategies\"},\"StrategyRemoved(address)\":{\"notice\":\"Emitted when a strategy is removed from the cloneable strategies\"},\"TreasuryUpdated(address)\":{\"notice\":\"Emitted when the treasury address is updated\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"addPoolManager(uint256,address)\":{\"notice\":\"Add a pool manager\"},\"addToCloneableStrategies(address)\":{\"notice\":\"Add a strategy to the allowlist.\"},\"allocate(uint256,bytes)\":{\"notice\":\"Allocate to a recipient or multiple recipients.\"},\"batchAllocate(uint256[],bytes[])\":{\"notice\":\"Allocate to multiple pools\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"notice\":\"Register multiple recipients to multiple pools.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (by cloning a cloneable strategies).\"},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (with a custom strategy)\"},\"distribute(uint256,address[],bytes)\":{\"notice\":\"Distribute to a recipient or multiple recipients.\"},\"fundPool(uint256,uint256)\":{\"notice\":\"Fund a pool.\"},\"getBaseFee()\":{\"notice\":\"Getter for base fee.\"},\"getFeeDenominator()\":{\"notice\":\"Getter for the fee denominator\"},\"getPercentFee()\":{\"notice\":\"Getter for fee percentage.\"},\"getPool(uint256)\":{\"notice\":\"Getter for the 'Pool'.\"},\"getRegistry()\":{\"notice\":\"Getter for registry.\"},\"getStrategy(uint256)\":{\"notice\":\"Getter for the strategy.\"},\"getTreasury()\":{\"notice\":\"Getter for treasury address.\"},\"initialize(address,address,address,uint256,uint256)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isCloneableStrategy(address)\":{\"notice\":\"Getter for if strategy is cloneable.\"},\"isPoolAdmin(uint256,address)\":{\"notice\":\"Checks if the address is a pool admin.\"},\"isPoolManager(uint256,address)\":{\"notice\":\"Checks if the address is a pool manager\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfer the funds recovered to the recipient\"},\"registerRecipient(uint256,bytes)\":{\"notice\":\"Passes _data through to the strategy for that pool.\"},\"removeFromCloneableStrategies(address)\":{\"notice\":\"Remove a strategy from the allowlist\"},\"removePoolManager(uint256,address)\":{\"notice\":\"Remove a pool manager\"},\"updateBaseFee(uint256)\":{\"notice\":\"Updates the base fee.\"},\"updatePercentFee(uint256)\":{\"notice\":\"Updates the fee percentage.\"},\"updatePoolMetadata(uint256,(uint256,string))\":{\"notice\":\"Update pool metadata\"},\"updateRegistry(address)\":{\"notice\":\"Updates the registry address.\"},\"updateTreasury(address)\":{\"notice\":\"Updates the treasury address.\"}},\"notice\":\"This contract is used to create & manage pools as well as manage the protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Allo.sol\":\"Allo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709\",\"dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb82ef33f43b6b96109687d91b39c94573fdccaaa423fe28e8ba0977b31c023e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9c629f63e66379f9c868a74f971064701cc6e30583872aa653f8b932518025\",\"dweb:/ipfs/QmY4MnZF2VMFwJkAwpdQwxEWA3KcGbNBKEmAVYePMVQWUR\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BaseFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256","indexed":false}],"type":"event","name":"BaseFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"percentFee","type":"uint256","indexed":false}],"type":"event","name":"PercentFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"PoolFunded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"registry","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasuryUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPoolManager"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterRecipient","outputs":[{"internalType":"address[]","name":"recipientIds","type":"address[]"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundPool"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getFeeDenominator","outputs":[{"internalType":"uint256","name":"FEE_DENOMINATOR","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPercentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStrategy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_percentFee","type":"uint256"},{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"isCloneableStrategy","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}]},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function","name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFromCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePoolManager"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateBaseFee"},{"inputs":[{"internalType":"uint256","name":"_percentFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updatePercentFee"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePoolMetadata"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRegistry"},{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTreasury"}],"devdoc":{"kind":"dev","methods":{"addPoolManager(uint256,address)":{"details":"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to add","_poolId":"ID of the pool"}},"addToCloneableStrategies(address)":{"details":"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"allocate(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().","params":{"_data":"Encoded data unique to the strategy for that pool","_poolId":"ID of the pool"}},"batchAllocate(uint256[],bytes[])":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.","params":{"_datas":"encoded data unique to the strategy for that pool","_poolIds":"IDs of the pools"}},"batchRegisterRecipient(uint256[],bytes[])":{"details":"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.","params":{"_data":"An array of encoded data unique to a strategy that registerRecipient() requires.","_poolIds":"ID's of the pools"},"returns":{"recipientIds":"The recipient IDs that have been registered"}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"completeOwnershipHandover(address)":{"details":"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"custom:initstrategydata":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'","details":"'msg.sender' must be owner or member of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool","_metadata":"The metadata of the pool","_profileId":"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the strategy contract the pool will use.","_token":"The address of the token"}},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"details":"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token you want to deposit into the pool on initialization","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool, and can be added/removed later by the pool admin","_metadata":"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)","_profileId":"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the deployed custom strategy","_token":"The address of the token you want to use in your pool"},"returns":{"poolId":"The ID of the pool"}},"distribute(uint256,address[],bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.","params":{"_data":"Encoded data unique to the strategy","_poolId":"ID of the pool","_recipientIds":"Ids of the recipients of the distribution"}},"fundPool(uint256,uint256)":{"details":"Anyone can fund a pool and call this function.","params":{"_amount":"The amount to be deposited into the pool","_poolId":"ID of the pool"}},"getBaseFee()":{"returns":{"_0":"The base fee"}},"getFeeDenominator()":{"returns":{"FEE_DENOMINATOR":"The fee denominator is (1e18) which represents 100%"}},"getPercentFee()":{"returns":{"_0":"The fee percentage (1e18 = 100%)"}},"getPool(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The 'Pool' struct"}},"getRegistry()":{"returns":{"_0":"The registry address"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getStrategy(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The address of the strategy"}},"getTreasury()":{"returns":{"_0":"The treasury address"}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,address,address,uint256,uint256)":{"details":"During upgrade -> a higher version should be passed to reinitializer","params":{"_baseFee":"The base fee","_owner":"The owner of allo","_percentFee":"The percentage fee","_registry":"The address of the registry","_treasury":"The address of the treasury"}},"isCloneableStrategy(address)":{"params":{"_strategy":"The address of the strategy"},"returns":{"_0":"'true' if the strategy is cloneable, otherwise 'false'"}},"isPoolAdmin(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool admin, otherwise 'false'"}},"isPoolManager(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool manager, otherwise 'false'"}},"owner()":{"details":"Returns the owner of the contract."},"ownershipHandoverExpiresAt(address)":{"details":"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"recoverFunds(address,address)":{"details":"'msg.sender' must be Allo owner","params":{"_recipient":"The recipient","_token":"The token to transfer"}},"registerRecipient(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().","params":{"_data":"Encoded data unique to a strategy that registerRecipient() requires","_poolId":"ID of the pool"},"returns":{"_0":"recipientId The recipient ID that has been registered"}},"removeFromCloneableStrategies(address)":{"details":"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"removePoolManager(uint256,address)":{"details":"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to remove","_poolId":"ID of the pool"}},"renounceOwnership()":{"details":"Allows the owner to renounce their ownership."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"requestOwnershipHandover()":{"details":"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"updateBaseFee(uint256)":{"details":"Use this to update the base fee. 'msg.sender' must be Allo owner.","params":{"_baseFee":"The new base fee"}},"updatePercentFee(uint256)":{"details":"Use this to update the fee percentage. 'msg.sender' must be Allo owner.","params":{"_percentFee":"The new fee"}},"updatePoolMetadata(uint256,(uint256,string))":{"details":"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.","params":{"_metadata":"The new metadata of the pool","_poolId":"ID of the pool"}},"updateRegistry(address)":{"details":"Use this to update the registry address. 'msg.sender' must be Allo owner.","params":{"_registry":"The new registry address"}},"updateTreasury(address)":{"details":"Use this to update the treasury address. 'msg.sender' must be Allo owner.","params":{"_treasury":"The new treasury address"}}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"addPoolManager(uint256,address)":{"notice":"Add a pool manager"},"addToCloneableStrategies(address)":{"notice":"Add a strategy to the allowlist."},"allocate(uint256,bytes)":{"notice":"Allocate to a recipient or multiple recipients."},"batchAllocate(uint256[],bytes[])":{"notice":"Allocate to multiple pools"},"batchRegisterRecipient(uint256[],bytes[])":{"notice":"Register multiple recipients to multiple pools."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (by cloning a cloneable strategies)."},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (with a custom strategy)"},"distribute(uint256,address[],bytes)":{"notice":"Distribute to a recipient or multiple recipients."},"fundPool(uint256,uint256)":{"notice":"Fund a pool."},"getBaseFee()":{"notice":"Getter for base fee."},"getFeeDenominator()":{"notice":"Getter for the fee denominator"},"getPercentFee()":{"notice":"Getter for fee percentage."},"getPool(uint256)":{"notice":"Getter for the 'Pool'."},"getRegistry()":{"notice":"Getter for registry."},"getStrategy(uint256)":{"notice":"Getter for the strategy."},"getTreasury()":{"notice":"Getter for treasury address."},"initialize(address,address,address,uint256,uint256)":{"notice":"Initializes the contract after an upgrade"},"isCloneableStrategy(address)":{"notice":"Getter for if strategy is cloneable."},"isPoolAdmin(uint256,address)":{"notice":"Checks if the address is a pool admin."},"isPoolManager(uint256,address)":{"notice":"Checks if the address is a pool manager"},"recoverFunds(address,address)":{"notice":"Transfer the funds recovered to the recipient"},"registerRecipient(uint256,bytes)":{"notice":"Passes _data through to the strategy for that pool."},"removeFromCloneableStrategies(address)":{"notice":"Remove a strategy from the allowlist"},"removePoolManager(uint256,address)":{"notice":"Remove a pool manager"},"updateBaseFee(uint256)":{"notice":"Updates the base fee."},"updatePercentFee(uint256)":{"notice":"Updates the fee percentage."},"updatePoolMetadata(uint256,(uint256,string))":{"notice":"Update pool metadata"},"updateRegistry(address)":{"notice":"Updates the registry address."},"updateTreasury(address)":{"notice":"Updates the treasury address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Allo.sol":"Allo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831","urls":["bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709","dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb82ef33f43b6b96109687d91b39c94573fdccaaa423fe28e8ba0977b31c023e0","urls":["bzz-raw://ec9c629f63e66379f9c868a74f971064701cc6e30583872aa653f8b932518025","dweb:/ipfs/QmY4MnZF2VMFwJkAwpdQwxEWA3KcGbNBKEmAVYePMVQWUR"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"}},"version":1},"id":0} \ No newline at end of file +{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addToCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"batchAllocate","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_datas","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterRecipient","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"recipientIds","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"completeOwnershipHandover","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"createPool","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"distribute","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeDenominator","inputs":[],"outputs":[{"name":"FEE_DENOMINATOR","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getPercentFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStrategy","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTreasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_registry","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address payable"},{"name":"_percentFee","type":"uint256","internalType":"uint256"},{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCloneableStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolAdmin","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"result","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownershipHandoverExpiresAt","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"removeFromCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateBaseFee","inputs":[{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePercentFee","inputs":[{"name":"_percentFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePoolMetadata","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRegistry","inputs":[{"name":"_registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BaseFeePaid","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BaseFeeUpdated","inputs":[{"name":"baseFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverCanceled","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverRequested","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PercentFeeUpdated","inputs":[{"name":"percentFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"PoolFunded","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolMetadataUpdated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyApproved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryUpdated","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506135a1806100206000396000f3fe6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea264697066735822122003a48f7a46c6d9883a02069310109ac1406e8f153439b0f6e65fc391be587c1f64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea264697066735822122003a48f7a46c6d9883a02069310109ac1406e8f153439b0f6e65fc391be587c1f64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3050:213:45;;;;;;;;;;-1:-1:-1;3050:213:45;;;;;:::i;:::-;;:::i;:::-;;;516:14:144;;509:22;491:41;;479:2;464:18;3050:213:45;;;;;;;;14900:288:0;;;;;;;;;;-1:-1:-1;14900:288:0;;;;;:::i;:::-;;:::i;:::-;;34013:108;;;;;;;;;;-1:-1:-1;34013:108:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;17298:276::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4391:55:144;;;4373:74;;4361:2;4346:18;17298:276:0;4227:226:144;33140:85:0;;;;;;;;;;-1:-1:-1;33211:7:0;;33140:85;;;4604:25:144;;;4592:2;4577:18;33140:85:0;4458:177:144;18212:747:0;;;;;;;;;;-1:-1:-1;18212:747:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13330:105::-;;;;;;;;;;-1:-1:-1;13330:105:0;;;;;:::i;:::-;;:::i;4855:129:45:-;;;;;;;;;;-1:-1:-1;4855:129:45;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;16308:430:0;;;;;;;;;;-1:-1:-1;16308:430:0;;;;;:::i;:::-;;:::i;7331:617:12:-;;;:::i;32476:144:0:-;;;;;;;;;;-1:-1:-1;32476:144:0;;;;;:::i;:::-;;:::i;15387:358::-;;;;;;;;;;-1:-1:-1;15387:358:0;;;;;:::i;:::-;;:::i;19921:127::-;;;;;;:::i;:::-;;:::i;5280:145:45:-;;;;;;;;;;-1:-1:-1;5280:145:45;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;;;;;-1:-1:-1;6389:214:45;;;;;:::i;:::-;;:::i;21468:196:0:-;;;;;;;;;;-1:-1:-1;21468:196:0;;;;;:::i;:::-;;:::i;33313:95::-;;;;;;;;;;-1:-1:-1;33393:8:0;;-1:-1:-1;;;;;33393:8:0;33313:95;;14481:229;;;;;;;;;;-1:-1:-1;14481:229:0;;;;;:::i;:::-;;:::i;32977:91::-;;;;;;;;;;-1:-1:-1;33051:10:0;;32977:91;;8030:456:12;;;:::i;33488:89:0:-;;;;;;;;;;-1:-1:-1;33562:8:0;;-1:-1:-1;;;;;33562:8:0;33488:89;;19156:439;;;;;;:::i;:::-;;:::i;12894:247::-;;;;;;;;;;-1:-1:-1;12894:247:0;;;;;:::i;:::-;;:::i;7072:100:12:-;;;:::i;11971:701:0:-;;;;;;:::i;:::-;;:::i;13624:113::-;;;;;;;;;;-1:-1:-1;13624:113:0;;;;;:::i;:::-;;:::i;15950:160::-;;;;;;;;;;-1:-1:-1;15950:160:0;;;;;:::i;:::-;;:::i;9718:191:12:-;;;;;;;;;;-1:-1:-1;;;9866:27:12;9718:191;;14188:101:0;;;;;;;;;;-1:-1:-1;14188:101:0;;;;;:::i;:::-;;:::i;3350:145:45:-;;;;;;;;;;-1:-1:-1;3350:145:45;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;;;;3350:145;4412:75:9;;;;;;;;;;;;4445:42;4412:75;;2320:49:45;;;;;;;;;;-1:-1:-1;2320:49:45;2365:4;2320:49;;7626:593:0;;;;;;;;;;-1:-1:-1;7626:593:0;;;;;:::i;:::-;;:::i;33760:132::-;;;;;;;;;;-1:-1:-1;33760:132:0;;;;;:::i;:::-;;:::i;32112:140::-;;;;;;;;;;-1:-1:-1;32112:140:0;;;;;:::i;:::-;;:::i;20511:559::-;;;;;;;;;;-1:-1:-1;20511:559:0;;;;;:::i;:::-;;:::i;32753:126::-;;;;;;;;;;-1:-1:-1;32753:126:0;;;;;:::i;:::-;32814:7;32848:14;;;:5;:14;;;;;:23;;;-1:-1:-1;;;;;32848:23:0;;32753:126;5705:147:45;;;;;;;;;;-1:-1:-1;5705:147:45;;;;;:::i;:::-;;:::i;10281:884:0:-;;;;;;:::i;:::-;;:::i;8673:708:12:-;;;;;;:::i;:::-;;:::i;6658:349::-;;;;;;:::i;:::-;;:::i;31788:103:0:-;;;;;;;;;;-1:-1:-1;31880:4:0;31788:103;;13911:113;;;;;;;;;;-1:-1:-1;13911:113:0;;;;;:::i;:::-;;:::i;10012:435:12:-;;;;;;;;;;-1:-1:-1;10012:435:12;;;;;:::i;:::-;10282:19;10276:4;10269:33;;;10131:14;10315:26;;;;10425:4;10409:21;;10403:28;;10012:435;3050:213:45;3135:4;3158:58;;;3173:43;3158:58;;:98;;-1:-1:-1;1204:36:55;1189:51;;;;3220:36:45;3151:105;3050:213;-1:-1:-1;;3050:213:45:o;14900:288:0:-;10836:13:12;:11;:13::i;:::-;-1:-1:-1;;;;;15059:30:0;::::1;15092:5;15059:30:::0;;;:19:::1;:30;::::0;;;;;;;;:38;;-1:-1:-1;;15059:38:0::1;::::0;;15155:26;;4373:74:144;;;15155:26:0::1;::::0;4346:18:144;15155:26:0::1;;;;;;;;14900:288:::0;:::o;34013:108::-;34070:11;;:::i;:::-;34100:14;;;;:5;:14;;;;;;;;;34093:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;34093:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34100:14;;34093:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34013:108;;;:::o;17298:276::-;17401:7;2526:21:50;:19;:21::i;:::-;17489:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:78;;;;;-1:-1:-1;;;;;17489:23:0;;::::1;::::0;:41:::1;::::0;17538:9:::1;::::0;17489:78:::1;::::0;17549:5;;17556:10:::1;::::0;17489:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17482:85;;2568:20:50::0;1808:1;3074:7;:22;2894:209;18212:747:0;18348:29;2526:21:50;:19;:21::i;:::-;18416:15:0;;;18456:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;18456:27:0::1;;18441:42;;18514:5;:12;18498;:28;18494:51;;18535:10;;-1:-1:-1::0;;;18535:10:0::1;;;;;;;;;;;18494:51;18663:9;18658:204;18678:12;18674:1;:16;18658:204;;;18725:5;:18;18731:8;18740:1;18731:11;;;;;;;;:::i;:::-;;;;;;;18725:18;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1::0;;;;;18725:27:0::1;-1:-1:-1::0;;;;;18725:45:0::1;;18771:5;18777:1;18771:8;;;;;;;;:::i;:::-;;;;;;;18781:10;18725:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18707:12;18720:1;18707:15;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18707:85:0;;::::1;:15;::::0;;::::1;::::0;;;;;;;:85;18834:3:::1;;18658:204;;;;18933:19;2568:20:50::0;1808:1;3074:7;:22;2894:209;13330:105:0;10836:13:12;:11;:13::i;:::-;13402:26:0::1;13418:9;13402:15;:26::i;:::-;13330:105:::0;:::o;16308:430::-;10836:13:12;:11;:13::i;:::-;16506:14:0::1;-1:-1:-1::0;;;;;16523:16:0;::::1;4445:42:9;16523:16:0;:93;;16566:50;::::0;;;;16610:4:::1;16566:50;::::0;::::1;4373:74:144::0;-1:-1:-1;;;;;16566:35:0;::::1;::::0;::::1;::::0;4346:18:144;;16566:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16523:93;;;16542:21;16523:93;16506:110;;16688:43;16704:6;16712:10;16724:6;16688:15;:43::i;:::-;16385:353;16308:430:::0;;:::o;7331:617:12:-;7424:15;6282:9;7442:46;;:15;:46;7424:64;;7656:19;7650:4;7643:33;7706:8;7700:4;7693:22;7762:7;7755:4;7749;7739:21;7732:38;7909:8;7862:45;7859:1;7856;7851:67;7558:374;7331:617::o;32476:144:0:-;32557:4;32580:33;32595:7;32604:8;32580:14;:33::i;:::-;32573:40;32476:144;-1:-1:-1;;;32476:144:0:o;15387:358::-;15469:7;8837:28;8857:7;8837:19;:28::i;:::-;-1:-1:-1;;;;;15568:22:0;::::1;15564:49;;15599:14;;-1:-1:-1::0;;;15599:14:0::1;;;;;;;;;;;15564:49;15701:14;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;15690:48:::1;::::0;15729:8;15690:10:::1;:48::i;19921:127::-:0;2526:21:50;:19;:21::i;:::-;20016:25:0::1;20026:7;20035:5;20016:9;:25::i;:::-;2568:20:50::0;1808:1;3074:7;:22;2894:209;2568:20;19921:127:0;;:::o;5280:145:45:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;6389:214::-:0;-1:-1:-1;;;;;6484:23:45;;965:10:53;6484:23:45;6476:83;;;;-1:-1:-1;;;6476:83:45;;16949:2:144;6476:83:45;;;16931:21:144;16988:2;16968:18;;;16961:30;17027:34;17007:18;;;17000:62;17098:17;17078:18;;;17071:45;17133:19;;6476:83:45;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;21468:196:0:-;2526:21:50;:19;:21::i;:::-;21589:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:68;;;;;-1:-1:-1;;;;;21589:23:0;;::::1;::::0;:34:::1;::::0;:68:::1;::::0;21624:13;;21639:5;;21646:10:::1;::::0;21589:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2568:20:50::0;1808:1;3074:7;:22;2894:209;14481:229:0;10836:13:12;:11;:13::i;:::-;-1:-1:-1;;;;;14567:23:0;::::1;14563:50;;14599:14;;-1:-1:-1::0;;;14599:14:0::1;;;;;;;;;;;14563:50;-1:-1:-1::0;;;;;14624:30:0;::::1;;::::0;;;:19:::1;:30;::::0;;;;;;;;:37;;-1:-1:-1;;14624:37:0::1;14657:4;14624:37;::::0;;14676:27;;4373:74:144;;;14676:27:0::1;::::0;4346:18:144;14676:27:0::1;4227:226:144::0;8030:456:12;8232:19;8226:4;8219:33;8278:8;8272:4;8265:22;8330:1;8323:4;8317;8307:21;8300:32;8461:8;8415:44;8412:1;8409;8404:66;8030:456::o;19156:439:0:-;2526:21:50;:19;:21::i;:::-;19318:7:0::1;19329:1;19318:12:::0;19314:43:::1;;19339:18;;-1:-1:-1::0;;;19339:18:0::1;;;;;;;;;;;19314:43;19368:16;19387:14:::0;;;:5:::1;:14;::::0;;;;;;;19368:33;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;19368:33:0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;;;19387:14;;19368:33;;;;;;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;19368:33:0;;;;-1:-1:-1;;;19368:33:0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;19415:10;::::1;::::0;19368:33;;-1:-1:-1;;;;;;19415:20:0::1;4445:42:9;19415:20:0;:44:::0;::::1;;;;19450:9;19439:7;:20;;19415:44;19411:75;;;19468:18;;-1:-1:-1::0;;;19468:18:0::1;;;;;;;;;;;19411:75;19546:42;19556:7;19565;19574:4;:13;;;19546:9;:42::i;:::-;19238:357;2568:20:50::0;1808:1;3074:7;:22;2894:209;12894:247:0;12991:7;8625:30;8647:7;8625:21;:30::i;:::-;13010:17:::1;13030:14:::0;;;:5:::1;:14;::::0;;;;;;;13054:25;;:13:::1;::::0;::::1;:25:::0;;;;;::::1;::::0;13030:14;;13070:9;;13054:25;;;;::::1;::::0;;::::1;:::i;:::-;;;;;13115:7;13095:39;13124:9;13095:39;;;;;;:::i;:::-;;;;;;;;13000:141;12894:247:::0;;;:::o;7072:100:12:-;10836:13;:11;:13::i;:::-;7144:21:::1;7162:1;7144:9;:21::i;:::-;7072:100::o:0;11971:701:0:-;12251:14;2526:21:50;:19;:21::i;:::-;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;12277:93:::1;;12336:23;;;;;;;;;;;;;;12277:93;12522:10;12514:19;::::0;;;:7:::1;:19;::::0;;;;:21;;12426:239:::1;::::0;12451:10;;12485:51:::1;::::0;12503:9;;12514:21;;:19;:21:::1;::::0;::::1;:::i;:::-;;;;;12485:17;:51::i;:::-;12551:17;12582:6;12602:7;12623:9;12646;12426:11;:239::i;:::-;12419:246;;2568:20:50::0;1808:1;3074:7;:22;2894:209;2568:20;11971:701:0;;;;;;;;;:::o;13624:113::-;10836:13:12;:11;:13::i;:::-;13704:26:0::1;13720:9;13704:15;:26::i;15950:160::-:0;16035:7;8837:28;8857:7;8837:19;:28::i;:::-;16066:14:::1;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;16054:49:::1;::::0;16094:8;16054:11:::1;:49::i;14188:101::-:0;10836:13:12;:11;:13::i;:::-;14258:24:0::1;14273:8;14258:14;:24::i;7626:593::-:0;4882:13:49;;7816:1:0;;4882:13:49;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:49;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:49;;20711:2:144;4873:99:49;;;20693:21:144;20750:2;20730:18;;;20723:30;20789:34;20769:18;;;20762:62;20860:16;20840:18;;;20833:44;20894:19;;4873:99:49;20509:410:144;4873:99:49;4982:12;:22;;-1:-1:-1;;5014:20:49;4982:22;;;5014:20;4982:22;5014:20;;;7890:24:0::1;7907:6:::0;7890:16:::1;:24::i;:::-;7968:26;7984:9;7968:15;:26::i;:::-;8048;8064:9;8048:15;:26::i;:::-;8119:30;8137:11;8119:17;:30::i;:::-;8188:24;8203:8;8188:14;:24::i;:::-;5071:5:49::0;5055:21;;-1:-1:-1;;5055:21:49;;;5091:20;;21096:4:144;21084:17;;21066:36;;5091:20:49;;21054:2:144;21039:18;5091:20:49;;;;;;;7626:593:0;;;;;;:::o;33760:132::-;-1:-1:-1;;;;;28993:30:0;;33831:4;28993:30;;;:19;:30;;;;;;;;33854:31;28898:132;32112:140;32191:4;32214:31;32227:7;32236:8;32214:12;:31::i;20511:559::-;2526:21:50;:19;:21::i;:::-;20784:13:0;;20637:8;;20772:25;::::1;20768:48;;20806:10;;-1:-1:-1::0;;;20806:10:0::1;;;;;;;;;;;20768:48;20921:9;20916:148;20936:8;20932:1;:12;20916:148;;;20961:33;20971:8;;20980:1;20971:11;;;;;;;:::i;:::-;;;;;;;20984:6;20991:1;20984:9;;;;;;;;:::i;:::-;;;;;;;20961;:33::i;:::-;21036:3;;20916:148;;;;20608:462;2568:20:50::0;1808:1;3074:7;:22;2894:209;5705:147:45;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;10281:884:0:-:0;10566:14;-1:-1:-1;;;;;10687:23:0;;10683:50;;10719:14;;-1:-1:-1;;;10719:14:0;;;;;;;;;;;10683:50;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;10894:66;;;10938:22;;;;;;;;;;;;;;10894:66;11055:103;11067:10;11089:9;11101:17;11120:6;11128:7;11137:9;11148;11055:11;:103::i;:::-;11048:110;10281:884;-1:-1:-1;;;;;;;;10281:884:0:o;8673:708:12:-;10836:13;:11;:13::i;:::-;8907:19:::1;8901:4;8894:33;8953:12;8947:4;8940:26;9015:4;9009;8999:21;9121:12;9115:19;9102:11;9099:36;9096:157;;;9167:10;9161:4;9154:24;9234:4;9228;9221:18;9096:157;9330:1;9309:23:::0;;9351::::1;9361:12:::0;9351:9:::1;:23::i;6658:349::-:0;10836:13;:11;:13::i;:::-;6830:8:::1;6826:2;6822:17;6812:150;;6872:10;6866:4;6859:24;6943:4;6937;6930:18;6812:150;6981:19;6991:8;6981:9;:19::i;13911:113:0:-:0;10836:13:12;:11;:13::i;:::-;13987:30:0::1;14005:11;13987:17;:30::i;5593:364:12:-:0;-1:-1:-1;;5799:27:12;5789:8;5786:41;5776:165;;5860:10;5854:4;5847:24;5922:4;5916;5909:18;2601:287:50;1851:1;2733:7;;:19;2725:63;;;;-1:-1:-1;;;2725:63:50;;21315:2:144;2725:63:50;;;21297:21:144;21354:2;21334:18;;;21327:30;21393:33;21373:18;;;21366:61;21444:18;;2725:63:50;21113:355:144;2725:63:50;1851:1;2863:7;:18;2601:287::o;30226:203:0:-;-1:-1:-1;;;;;30293:23:0;;30289:50;;30325:14;;-1:-1:-1;;;30325:14:0;;;;;;;;;;;30289:50;30350:8;:31;;-1:-1:-1;;30350:31:0;-1:-1:-1;;;;;30350:31:0;;;;;;;;30396:26;;4373:74:144;;;30396:26:0;;4361:2:144;4346:18;30396:26:0;4227:226:144;6721:269:10;-1:-1:-1;;;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;29821:192:0:-;29903:4;29934:14;;;:5;:14;;;;;;;;:26;;;3459:12:45;;:6;:12;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;29926:80:0;;;;29975:31;29988:7;29997:8;29975:12;:31::i;22160:138::-;22235:33;22248:7;22257:10;22235:12;:33::i;:::-;22230:61;;22277:14;;-1:-1:-1;;;22277:14:0;;;;;;;;;;;7938:233:45;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:45;;;;;;;;;:36;;-1:-1:-1;;8059:36:45;8091:4;8059:36;;;8141:12;965:10:53;;886:96;8141:12:45;-1:-1:-1;;;;;8114:40:45;8132:7;-1:-1:-1;;;;;8114:40:45;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;26159:151:0:-;26234:14;;;;:5;:14;;;;;;;:23;;;:69;;;;;-1:-1:-1;;;;;26234:23:0;;;;:32;;26274:9;;26234:69;;26285:5;;26292:10;;26234:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26159:151;;:::o;3789:103:45:-;3855:30;3866:4;965:10:53;3855::45;:30::i;8342:234::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:45;;;;;;;;;;:37;;-1:-1:-1;;8463:37:45;;;8519:40;965:10:53;;8463:12:45;;8519:40;;8495:5;8519:40;8342:234;;:::o;26634:1879:0:-;26727:17;26817:14;;;:5;:14;;;;;26858:10;;;;26883;;26779:7;;26817:14;-1:-1:-1;;;;;26858:10:0;;26883:14;26879:808;;31880:4;26936:10;;26926:20;;:7;:20;:::i;:::-;26925:44;;;;:::i;:::-;26913:56;-1:-1:-1;26983:27:0;26913:56;26983:27;;:::i;:::-;;-1:-1:-1;27059:7:0;27029:26;26983:27;27029:9;:26;:::i;:::-;:37;27025:59;;27075:9;;;;;;;;;;;;;;27025:59;-1:-1:-1;;;;;;;27103:16:0;;;27099:578;;27167:65;;;;;;;;27187:10;27167:65;;27203:8;;-1:-1:-1;;;;;27203:8:0;27167:65;;;;;;;;;;27139:94;;27159:6;;27139:19;:94::i;:::-;;27099:578;;;27319:8;;27272:24;;27299:29;;27311:6;;-1:-1:-1;;;;;27319:8:0;27299:11;:29::i;:::-;27374:65;;;;;;;;27394:10;27374:65;;27410:8;;-1:-1:-1;;;;;27410:8:0;27374:65;;;;;;;;;;27272:56;;-1:-1:-1;27346:94:0;;27366:6;;27346:19;:94::i;:::-;-1:-1:-1;27504:8:0;;27458:23;;27484:29;;27496:6;;-1:-1:-1;;;;;27504:8:0;27484:11;:29::i;:::-;27458:55;-1:-1:-1;27628:34:0;27646:16;27458:55;27628:34;:::i;:::-;27616:46;;27254:423;;27099:578;-1:-1:-1;;;;;;;27701:16:0;;;27697:693;;27733:139;27770:6;27778:80;;;;;;;;27798:10;-1:-1:-1;;;;;27778:80:0;;;;;27822:9;-1:-1:-1;;;;;27778:80:0;;;;;27842:14;27778:80;;;27733:19;:139::i;:::-;;27697:693;;;27903:32;27938:39;27950:6;27966:9;27938:11;:39::i;:::-;27903:74;;27991:139;28028:6;28036:80;;;;;;;;28056:10;-1:-1:-1;;;;;28036:80:0;;;;;28080:9;-1:-1:-1;;;;;28036:80:0;;;;;28100:14;28036:80;;;27991:19;:139::i;:::-;;28144:31;28178:39;28190:6;28206:9;28178:11;:39::i;:::-;28144:73;-1:-1:-1;28329:50:0;28355:24;28144:73;28329:50;:::i;:::-;28312:67;;27889:501;;27697:693;28400:44;;;;;;;;4604:25:144;;;-1:-1:-1;;;;;28400:28:0;;;;;4577:18:144;;28400:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28460:46:0;;;22362:25:144;;;22418:2;22403:18;;22396:34;;;28471:7:0;;-1:-1:-1;28460:46:0;;-1:-1:-1;22335:18:144;28460:46:0;;;;;;;26717:1796;;;;26634:1879;;;:::o;21910:142::-;21987:35;22002:7;22011:10;21987:14;:35::i;5040:495:12:-;-1:-1:-1;;5416:16:12;;-1:-1:-1;;;;;5272:26:12;;;;;;5376:38;5373:1;;5365:78;5492:27;5040:495::o;4749:279:6:-;4867:36;;-1:-1:-1;;4884:10:6;22618:2:144;22614:15;22610:53;4867:36:6;;;22598:66:144;22680:12;;;22673:28;;;4823:7:6;;;;22717:12:144;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;23131:2681:0:-;23424:8;;:57;;;;;;;;22914:25:144;;;23470:10:0;22955:18:144;;;22948:83;23393:14:0;;-1:-1:-1;;;;;23424:8:0;;:33;;22887:18:144;;23424:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23419:85;;23490:14;;-1:-1:-1;;;23490:14:0;;;;;;;;;;;23419:85;23526:10;;23524:12;;;;;:::i;:::-;;;;;-1:-1:-1;23764:33:0;;23524:12;;-1:-1:-1;23524:12:0;;23675:25;;23764:33;;23524:12;;23764:33;;23554:19:144;;;23603:7;23598:2;23589:12;;23582:29;23636:2;23627:12;;23324:321;23764:33:0;;;;-1:-1:-1;;23764:33:0;;;;;;;;;23754:44;;23764:33;23754:44;;;;23864:228;;;;;;;;-1:-1:-1;;;;;23864:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23845:16;24159:13;;;:5;:13;;;;;;:20;;;;;;;;;;;;;;-1:-1:-1;;24159:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23754:44;;-1:-1:-1;23764:33:0;;24159:13;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;;24159:20:0;;;;;;;;;;;;;;;;;;24239:39;24250:15;24267:10;24239;:39::i;:::-;24337:49;24351:17;24370:15;24337:13;:49::i;:::-;24541:47;;;;;-1:-1:-1;;;;;24541:20:0;;;;;:47;;24562:6;;24570:17;;24541:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24628:6;24603:9;-1:-1:-1;;;;;24603:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;:80;;;;24678:4;-1:-1:-1;;;;;24638:45:0;24646:9;-1:-1:-1;;;;;24646:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24638:45:0;;;24603:80;24599:103;;;24692:10;;-1:-1:-1;;;24692:10:0;;;;;;;;;;;24599:103;24775:16;;24750:22;24801:266;24821:14;24817:1;:18;24801:266;;;24852:15;24870:9;24880:1;24870:12;;;;;;;;:::i;:::-;;;;;;;24852:30;;24919:1;-1:-1:-1;;;;;24900:21:0;:7;-1:-1:-1;;;;;24900:21:0;;24896:48;;24930:14;;-1:-1:-1;;;24930:14:0;;;;;;;;;;;24896:48;24959:38;24970:17;24989:7;24959:10;:38::i;:::-;-1:-1:-1;25039:3:0;;24801:266;;;-1:-1:-1;25081:7:0;;:11;25077:554;;-1:-1:-1;;;;;25359:16:0;;4445:42:9;25359:16:0;:52;;;;;25401:9;25390:7;25380;;:17;;;;:::i;:::-;:30;;25359:52;25358:100;;;-1:-1:-1;;;;;;25417:16:0;;4445:42:9;25417:16:0;;;;:40;;;25448:9;25437:7;;:20;;25417:40;25354:164;;;25485:18;;-1:-1:-1;;;25485:18:0;;;;;;;;;;;25354:164;25555:8;;25565:7;;25531:42;;4445::9;;-1:-1:-1;;;;;25555:8:0;;;;25531:15;:42::i;:::-;25604:6;25592:28;25612:7;;25592:28;;;;4604:25:144;;4592:2;4577:18;;4458:177;25592:28:0;;;;;;;;25077:554;25645:11;;25641:79;;25672:37;25682:7;25691:6;25699:9;25672;:37::i;:::-;25755:10;25747:6;25735:70;25767:9;25778:6;25786:7;25795:9;25735:70;;;;;;;;;:::i;:::-;;;;;;;;23409:2403;;;;23131:2681;;;;;;;;;:::o;30642:199::-;-1:-1:-1;;;;;30717:23:0;;30713:50;;30749:14;;-1:-1:-1;;;30749:14:0;;;;;;;;;;;30713:50;30774:8;:20;;-1:-1:-1;;30774:20:0;-1:-1:-1;;;;;30774:20:0;;;;;;;;30809:25;;4373:74:144;;;30809:25:0;;4361:2:144;4346:18;30809:25:0;4227:226:144;31426:125:0;31487:7;:18;;;31521:23;;4604:25:144;;;31521:23:0;;4592:2:144;4577:18;31521:23:0;4458:177:144;4520:448:12;-1:-1:-1;;;;;4709:26:12;-1:-1:-1;;4784:38:12;;;4709:26;4940:1;4900:38;4940:1;;4889:63;4520:448;:::o;31041:198:0:-;31126:4;31112:11;:18;31108:44;;;31139:13;;;;;;;;;;;;;;31108:44;31163:10;:24;;;31203:29;;4604:25:144;;;31203:29:0;;4592:2:144;4577:18;31203:29:0;4458:177:144;29346:153:0;29426:4;29457:14;;;:5;:14;;;;;;;;:24;;;3459:12:45;;:6;:12;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;29449:43:0;3350:145:45;2455:490:14;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;4173:501:45:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:45;;;;;;;;;;-1:-1:-1;;;4299:358:45;;;;;;;:::i;6019:500:10:-;6150:20;;;;6117:4;;-1:-1:-1;;;;;;;6184:16:10;;;6180:312;;6260:6;6248:9;:18;6244:48;;;6275:17;;;;;;;;;;;;;;6244:48;6307:57;6339:13;:16;;;6357:6;6307:31;:57::i;:::-;6180:312;;;6395:86;6428:6;6436:13;:18;;;6456:13;:16;;;6474:6;6395:32;:86::i;:::-;-1:-1:-1;6508:4:10;;6019:500;-1:-1:-1;;;6019:500:10:o;7224:263::-;7302:7;-1:-1:-1;;;;;;;7325:16:10;;;7321:160;;-1:-1:-1;;;;;;7364:25:10;;;7357:32;;7321:160;7427:43;7453:6;7461:8;7427:25;:43::i;:::-;7420:50;;;;2118:794:48;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:48;;2847:58;;;;-1:-1:-1;;;2847:58:48;;26275:2:144;2847:58:48;;;26257:21:144;26314:2;26294:18;;;26287:30;26353:25;26333:18;;;26326:53;26396:18;;2847:58:48;26073:347:144;7523:247:45;7606:25;4955:12;;;:6;:12;;;;;;:22;;;;7662:34;;;;7711:52;;4955:22;;7662:34;;4955:22;;:12;;7711:52;;7606:25;7711:52;7596:174;7523:247;;:::o;2473:149:54:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:54;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:54;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:54;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:54;;;;;;;;-1:-1:-1;2096:9:54;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:54;;;;;;;;-1:-1:-1;2207:1:54;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:54;;2228:55;;;;-1:-1:-1;;;2228:55:54;;26768:2:144;2228:55:54;;;26750:21:144;;;26787:18;;;26780:30;26846:34;26826:18;;;26819:62;26898:18;;2228:55:54;26566:356:144;7671:1379:14;7854:4;7848:11;7920:6;7914:4;7907:20;7985:2;7979:4;7972:16;8050:4;8046:2;8042:13;8036:4;8029:27;8199:34;8193:4;8186:48;8657:4;8651;8645;8639;8636:1;8629:5;8622;8617:45;8577:16;8570:24;8566:1;8559:4;8553:11;8550:18;8547:48;8275:405;8248:659;;8800:10;8794:4;8787:24;8888:4;8882;8875:18;8248:659;8934:1;8928:4;8921:15;8990:4;8983:15;-1:-1:-1;;;;7671:1379:14:o;18299:722::-;18373:14;18478:7;18472:4;18465:21;18613:34;18607:4;18600:48;18960:4;18954;18948;18942;18935:5;18928;18917:48;18855:4;18837:16;18834:26;18745:242;18718:4;18712:11;18687:318;18661:344;;18299:722;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:332:144:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:154;-1:-1:-1;;;;;622:5:144;618:54;611:5;608:65;598:93;;687:1;684;677:12;702:247;761:6;814:2;802:9;793:7;789:23;785:32;782:52;;;830:1;827;820:12;782:52;869:9;856:23;888:31;913:5;888:31;:::i;954:180::-;1013:6;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;-1:-1:-1;1105:23:144;;954:180;-1:-1:-1;954:180:144:o;1139:250::-;1224:1;1234:113;1248:6;1245:1;1242:13;1234:113;;;1324:11;;;1318:18;1305:11;;;1298:39;1270:2;1263:10;1234:113;;;-1:-1:-1;;1381:1:144;1363:16;;1356:27;1139:250::o;1394:271::-;1436:3;1474:5;1468:12;1501:6;1496:3;1489:19;1517:76;1586:6;1579:4;1574:3;1570:14;1563:4;1556:5;1552:16;1517:76;:::i;:::-;1647:2;1626:15;-1:-1:-1;;1622:29:144;1613:39;;;;1654:4;1609:50;;1394:271;-1:-1:-1;;1394:271:144:o;1670:252::-;1757:5;1751:12;1746:3;1739:25;1721:3;1810:4;1803:5;1799:16;1793:23;1848:4;1841;1836:3;1832:14;1825:28;1869:47;1910:4;1905:3;1901:14;1887:12;1869:47;:::i;1927:797::-;2100:2;2089:9;2082:21;2145:6;2139:13;2134:2;2123:9;2119:18;2112:41;2063:4;2200:2;2192:6;2188:15;2182:22;-1:-1:-1;;;;;2319:2:144;2305:12;2301:21;2296:2;2285:9;2281:18;2274:49;2387:2;2381;2373:6;2369:15;2363:22;2359:31;2354:2;2343:9;2339:18;2332:59;;;2440:2;2432:6;2428:15;2422:22;2481:4;2475:3;2464:9;2460:19;2453:33;2509:63;2567:3;2556:9;2552:19;2536:14;2509:63;:::i;:::-;2495:77;;2627:3;2619:6;2615:16;2609:23;2603:3;2592:9;2588:19;2581:52;2689:3;2681:6;2677:16;2671:23;2664:4;2653:9;2649:20;2642:53;2712:6;2704:14;;;1927:797;;;;:::o;2729:184::-;-1:-1:-1;;;2778:1:144;2771:88;2878:4;2875:1;2868:15;2902:4;2899:1;2892:15;2918:275;2989:2;2983:9;3054:2;3035:13;;-1:-1:-1;;3031:27:144;3019:40;;3089:18;3074:34;;3110:22;;;3071:62;3068:88;;;3136:18;;:::i;:::-;3172:2;3165:22;2918:275;;-1:-1:-1;2918:275:144:o;3198:406::-;3262:5;3296:18;3288:6;3285:30;3282:56;;;3318:18;;:::i;:::-;3356:57;3401:2;3380:15;;-1:-1:-1;;3376:29:144;3407:4;3372:40;3356:57;:::i;:::-;3347:66;;3436:6;3429:5;3422:21;3476:3;3467:6;3462:3;3458:16;3455:25;3452:45;;;3493:1;3490;3483:12;3452:45;3542:6;3537:3;3530:4;3523:5;3519:16;3506:43;3596:1;3589:4;3580:6;3573:5;3569:18;3565:29;3558:40;3198:406;;;;;:::o;3609:220::-;3651:5;3704:3;3697:4;3689:6;3685:17;3681:27;3671:55;;3722:1;3719;3712:12;3671:55;3744:79;3819:3;3810:6;3797:20;3790:4;3782:6;3778:17;3744:79;:::i;3834:388::-;3911:6;3919;3972:2;3960:9;3951:7;3947:23;3943:32;3940:52;;;3988:1;3985;3978:12;3940:52;4024:9;4011:23;4001:33;;4085:2;4074:9;4070:18;4057:32;4112:18;4104:6;4101:30;4098:50;;;4144:1;4141;4134:12;4098:50;4167:49;4208:7;4199:6;4188:9;4184:22;4167:49;:::i;:::-;4157:59;;;3834:388;;;;;:::o;4640:183::-;4700:4;4733:18;4725:6;4722:30;4719:56;;;4755:18;;:::i;:::-;-1:-1:-1;4800:1:144;4796:14;4812:4;4792:25;;4640:183::o;4828:886::-;4880:5;4933:3;4926:4;4918:6;4914:17;4910:27;4900:55;;4951:1;4948;4941:12;4900:55;4987:6;4974:20;5013:4;5037:60;5053:43;5093:2;5053:43;:::i;:::-;5037:60;:::i;:::-;5131:15;;;5217:1;5213:10;;;;5201:23;;5197:32;;;5162:12;;;;5241:15;;;5238:35;;;5269:1;5266;5259:12;5238:35;5305:2;5297:6;5293:15;5317:368;5333:6;5328:3;5325:15;5317:368;;;5419:3;5406:17;5455:18;5442:11;5439:35;5436:125;;;5515:1;5544:2;5540;5533:14;5436:125;5586:56;5638:3;5633:2;5619:11;5611:6;5607:24;5603:33;5586:56;:::i;:::-;5574:69;;-1:-1:-1;5663:12:144;;;;5350;;5317:368;;;-1:-1:-1;5703:5:144;4828:886;-1:-1:-1;;;;;;4828:886:144:o;5719:1147::-;5846:6;5854;5907:2;5895:9;5886:7;5882:23;5878:32;5875:52;;;5923:1;5920;5913:12;5875:52;5963:9;5950:23;5992:18;6033:2;6025:6;6022:14;6019:34;;;6049:1;6046;6039:12;6019:34;6087:6;6076:9;6072:22;6062:32;;6132:7;6125:4;6121:2;6117:13;6113:27;6103:55;;6154:1;6151;6144:12;6103:55;6190:2;6177:16;6212:4;6236:60;6252:43;6292:2;6252:43;:::i;6236:60::-;6330:15;;;6412:1;6408:10;;;;6400:19;;6396:28;;;6361:12;;;;6436:19;;;6433:39;;;6468:1;6465;6458:12;6433:39;6492:11;;;;6512:142;6528:6;6523:3;6520:15;6512:142;;;6594:17;;6582:30;;6545:12;;;;6632;;;;6512:142;;;6673:5;-1:-1:-1;;6716:18:144;;6703:32;;-1:-1:-1;;6747:16:144;;;6744:36;;;6776:1;6773;6766:12;6744:36;;6799:61;6852:7;6841:8;6830:9;6826:24;6799:61;:::i;6871:484::-;6924:3;6962:5;6956:12;6989:6;6984:3;6977:19;7015:4;7044:2;7039:3;7035:12;7028:19;;7081:2;7074:5;7070:14;7102:1;7112:218;7126:6;7123:1;7120:13;7112:218;;;7191:13;;-1:-1:-1;;;;;7187:62:144;7175:75;;7270:12;;;;7305:15;;;;7148:1;7141:9;7112:218;;;-1:-1:-1;7346:3:144;;6871:484;-1:-1:-1;;;;;6871:484:144:o;7360:261::-;7539:2;7528:9;7521:21;7502:4;7559:56;7611:2;7600:9;7596:18;7588:6;7559:56;:::i;7993:388::-;8061:6;8069;8122:2;8110:9;8101:7;8097:23;8093:32;8090:52;;;8138:1;8135;8128:12;8090:52;8177:9;8164:23;8196:31;8221:5;8196:31;:::i;:::-;8246:5;-1:-1:-1;8303:2:144;8288:18;;8275:32;8316:33;8275:32;8316:33;:::i;:::-;8368:7;8358:17;;;7993:388;;;;;:::o;8386:315::-;8454:6;8462;8515:2;8503:9;8494:7;8490:23;8486:32;8483:52;;;8531:1;8528;8521:12;8483:52;8567:9;8554:23;8544:33;;8627:2;8616:9;8612:18;8599:32;8640:31;8665:5;8640:31;:::i;9026:737::-;9080:5;9133:3;9126:4;9118:6;9114:17;9110:27;9100:55;;9151:1;9148;9141:12;9100:55;9187:6;9174:20;9213:4;9237:60;9253:43;9293:2;9253:43;:::i;9237:60::-;9331:15;;;9417:1;9413:10;;;;9401:23;;9397:32;;;9362:12;;;;9441:15;;;9438:35;;;9469:1;9466;9459:12;9438:35;9505:2;9497:6;9493:15;9517:217;9533:6;9528:3;9525:15;9517:217;;;9613:3;9600:17;9630:31;9655:5;9630:31;:::i;:::-;9674:18;;9712:12;;;;9550;;9517:217;;9768:635;9879:6;9887;9895;9948:2;9936:9;9927:7;9923:23;9919:32;9916:52;;;9964:1;9961;9954:12;9916:52;10000:9;9987:23;9977:33;;10061:2;10050:9;10046:18;10033:32;10084:18;10125:2;10117:6;10114:14;10111:34;;;10141:1;10138;10131:12;10111:34;10164:61;10217:7;10208:6;10197:9;10193:22;10164:61;:::i;:::-;10154:71;;10278:2;10267:9;10263:18;10250:32;10234:48;;10307:2;10297:8;10294:16;10291:36;;;10323:1;10320;10313:12;10291:36;;10346:51;10389:7;10378:8;10367:9;10363:24;10346:51;:::i;:::-;10336:61;;;9768:635;;;;;:::o;10904:248::-;10972:6;10980;11033:2;11021:9;11012:7;11008:23;11004:32;11001:52;;;11049:1;11046;11039:12;11001:52;-1:-1:-1;;11072:23:144;;;11142:2;11127:18;;;11114:32;;-1:-1:-1;10904:248:144:o;11157:734::-;11212:5;11260:4;11248:9;11243:3;11239:19;11235:30;11232:50;;;11278:1;11275;11268:12;11232:50;11311:4;11305:11;11355:4;11347:6;11343:17;11379:18;11447:6;11435:10;11432:22;11427:2;11415:10;11412:18;11409:46;11406:72;;;11458:18;;:::i;:::-;11500:10;11494:4;11487:24;11529:6;11520:15;;11572:9;11559:23;11551:6;11544:39;11634:2;11623:9;11619:18;11606:32;11592:46;;11661:2;11653:6;11650:14;11647:34;;;11677:1;11674;11667:12;11647:34;-1:-1:-1;11700:22:144;;11753:4;11745:13;;11741:23;-1:-1:-1;11731:51:144;;11778:1;11775;11768:12;11731:51;11815:69;11880:3;11875:2;11862:16;11857:2;11853;11849:11;11815:69;:::i;:::-;11810:2;11802:6;11798:15;11791:94;;;11157:734;;;;:::o;11896:415::-;11990:6;11998;12051:2;12039:9;12030:7;12026:23;12022:32;12019:52;;;12067:1;12064;12057:12;12019:52;12103:9;12090:23;12080:33;;12164:2;12153:9;12149:18;12136:32;12191:18;12183:6;12180:30;12177:50;;;12223:1;12220;12213:12;12177:50;12246:59;12297:7;12288:6;12277:9;12273:22;12246:59;:::i;12316:1208::-;12489:6;12497;12505;12513;12521;12529;12537;12590:3;12578:9;12569:7;12565:23;12561:33;12558:53;;;12607:1;12604;12597:12;12558:53;12643:9;12630:23;12620:33;;12703:2;12692:9;12688:18;12675:32;12716:31;12741:5;12716:31;:::i;:::-;12766:5;-1:-1:-1;12822:2:144;12807:18;;12794:32;12845:18;12875:14;;;12872:34;;;12902:1;12899;12892:12;12872:34;12925:49;12966:7;12957:6;12946:9;12942:22;12925:49;:::i;:::-;12915:59;;13026:2;13015:9;13011:18;12998:32;12983:47;;13039:33;13064:7;13039:33;:::i;:::-;13091:7;;-1:-1:-1;13145:3:144;13130:19;;13117:33;;-1:-1:-1;13203:3:144;13188:19;;13175:33;;13220:16;;;13217:36;;;13249:1;13246;13239:12;13217:36;13272:61;13325:7;13314:8;13303:9;13299:24;13272:61;:::i;:::-;13262:71;;13386:3;13375:9;13371:19;13358:33;13342:49;;13416:2;13406:8;13403:16;13400:36;;;13432:1;13429;13422:12;13400:36;;13455:63;13510:7;13499:8;13488:9;13484:24;13455:63;:::i;:::-;13445:73;;;12316:1208;;;;;;;;;;:::o;13789:675::-;13892:6;13900;13908;13916;13924;13977:3;13965:9;13956:7;13952:23;13948:33;13945:53;;;13994:1;13991;13984:12;13945:53;14033:9;14020:23;14052:31;14077:5;14052:31;:::i;:::-;14102:5;-1:-1:-1;14159:2:144;14144:18;;14131:32;14172:33;14131:32;14172:33;:::i;:::-;14224:7;-1:-1:-1;14283:2:144;14268:18;;14255:32;14296:33;14255:32;14296:33;:::i;:::-;13789:675;;;;-1:-1:-1;14348:7:144;;14402:2;14387:18;;14374:32;;-1:-1:-1;14453:3:144;14438:19;14425:33;;13789:675;-1:-1:-1;;13789:675:144:o;14469:854::-;14598:6;14606;14614;14667:2;14655:9;14646:7;14642:23;14638:32;14635:52;;;14683:1;14680;14673:12;14635:52;14723:9;14710:23;14752:18;14793:2;14785:6;14782:14;14779:34;;;14809:1;14806;14799:12;14779:34;14847:6;14836:9;14832:22;14822:32;;14892:7;14885:4;14881:2;14877:13;14873:27;14863:55;;14914:1;14911;14904:12;14863:55;14954:2;14941:16;14980:2;14972:6;14969:14;14966:34;;;14996:1;14993;14986:12;14966:34;15051:7;15044:4;15034:6;15031:1;15027:14;15023:2;15019:23;15015:34;15012:47;15009:67;;;15072:1;15069;15062:12;15009:67;15103:4;15095:13;;;;-1:-1:-1;15127:6:144;-1:-1:-1;15171:20:144;;;15158:34;;15204:16;;;15201:36;;;15233:1;15230;15223:12;15201:36;;15256:61;15309:7;15298:8;15287:9;15283:24;15256:61;:::i;15328:437::-;15407:1;15403:12;;;;15450;;;15471:61;;15525:4;15517:6;15513:17;15503:27;;15471:61;15578:2;15570:6;15567:14;15547:18;15544:38;15541:218;;-1:-1:-1;;;15612:1:144;15605:88;15716:4;15713:1;15706:15;15744:4;15741:1;15734:15;15541:218;;15328:437;;;:::o;15770:338::-;15945:2;15934:9;15927:21;15908:4;15965:45;16006:2;15995:9;15991:18;15983:6;15965:45;:::i;:::-;15957:53;;-1:-1:-1;;;;;16050:6:144;16046:55;16041:2;16030:9;16026:18;16019:83;15770:338;;;;;:::o;16113:251::-;16183:6;16236:2;16224:9;16215:7;16211:23;16207:32;16204:52;;;16252:1;16249;16242:12;16204:52;16284:9;16278:16;16303:31;16328:5;16303:31;:::i;16369:184::-;-1:-1:-1;;;16418:1:144;16411:88;16518:4;16515:1;16508:15;16542:4;16539:1;16532:15;16558:184;16628:6;16681:2;16669:9;16660:7;16656:23;16652:32;16649:52;;;16697:1;16694;16687:12;16649:52;-1:-1:-1;16720:16:144;;16558:184;-1:-1:-1;16558:184:144:o;17163:542::-;17416:2;17405:9;17398:21;17379:4;17442:56;17494:2;17483:9;17479:18;17471:6;17442:56;:::i;:::-;17546:9;17538:6;17534:22;17529:2;17518:9;17514:18;17507:50;17574:33;17600:6;17592;17574:33;:::i;:::-;17566:41;;;-1:-1:-1;;;;;17647:6:144;17643:55;17638:2;17627:9;17623:18;17616:83;17163:542;;;;;;:::o;17836:545::-;17938:2;17933:3;17930:11;17927:448;;;17974:1;17999:5;17995:2;17988:17;18044:4;18040:2;18030:19;18114:2;18102:10;18098:19;18095:1;18091:27;18085:4;18081:38;18150:4;18138:10;18135:20;18132:47;;;-1:-1:-1;18173:4:144;18132:47;18228:2;18223:3;18219:12;18216:1;18212:20;18206:4;18202:31;18192:41;;18283:82;18301:2;18294:5;18291:13;18283:82;;;18346:17;;;18327:1;18316:13;18283:82;;;18287:3;;;17836:545;;;:::o;18557:1352::-;18683:3;18677:10;18710:18;18702:6;18699:30;18696:56;;;18732:18;;:::i;:::-;18761:97;18851:6;18811:38;18843:4;18837:11;18811:38;:::i;:::-;18805:4;18761:97;:::i;:::-;18913:4;;18977:2;18966:14;;18994:1;18989:663;;;;19696:1;19713:6;19710:89;;;-1:-1:-1;19765:19:144;;;19759:26;19710:89;-1:-1:-1;;18514:1:144;18510:11;;;18506:24;18502:29;18492:40;18538:1;18534:11;;;18489:57;19812:81;;18959:944;;18989:663;17783:1;17776:14;;;17820:4;17807:18;;-1:-1:-1;;19025:20:144;;;19143:236;19157:7;19154:1;19151:14;19143:236;;;19246:19;;;19240:26;19225:42;;19338:27;;;;19306:1;19294:14;;;;19173:19;;19143:236;;;19147:3;19407:6;19398:7;19395:19;19392:201;;;19468:19;;;19462:26;-1:-1:-1;;19551:1:144;19547:14;;;19563:3;19543:24;19539:37;19535:42;19520:58;19505:74;;19392:201;-1:-1:-1;;;;;19639:1:144;19623:14;;;19619:22;19606:36;;-1:-1:-1;18557:1352:144:o;19914:261::-;20095:2;20084:9;20077:21;20058:4;20115:54;20165:2;20154:9;20150:18;20142:6;20115:54;:::i;20180:184::-;-1:-1:-1;;;20229:1:144;20222:88;20329:4;20326:1;20319:15;20353:4;20350:1;20343:15;20369:135;20408:3;20429:17;;;20426:43;;20449:18;;:::i;:::-;-1:-1:-1;20496:1:144;20485:13;;20369:135::o;21473:168::-;21546:9;;;21577;;21594:15;;;21588:22;;21574:37;21564:71;;21615:18;;:::i;21646:274::-;21686:1;21712;21702:189;;-1:-1:-1;;;21744:1:144;21737:88;21848:4;21845:1;21838:15;21876:4;21873:1;21866:15;21702:189;-1:-1:-1;21905:9:144;;21646:274::o;21925:128::-;21992:9;;;22013:11;;;22010:37;;;22027:18;;:::i;22058:125::-;22123:9;;;22144:10;;;22141:36;;;22157:18;;:::i;23042:277::-;23109:6;23162:2;23150:9;23141:7;23137:23;23133:32;23130:52;;;23178:1;23175;23168:12;23130:52;23210:9;23204:16;23263:5;23256:13;23249:21;23242:5;23239:32;23229:60;;23285:1;23282;23275:12;23650:289;23825:6;23814:9;23807:25;23868:2;23863;23852:9;23848:18;23841:30;23788:4;23888:45;23929:2;23918:9;23914:18;23906:6;23888:45;:::i;24214:573::-;24460:4;-1:-1:-1;;;;;24570:2:144;24562:6;24558:15;24547:9;24540:34;24622:2;24614:6;24610:15;24605:2;24594:9;24590:18;24583:43;;24662:6;24657:2;24646:9;24642:18;24635:34;24705:3;24700:2;24689:9;24685:18;24678:31;24726:55;24776:3;24765:9;24761:19;24753:6;24726:55;:::i;:::-;24718:63;24214:573;-1:-1:-1;;;;;;24214:573:144:o;25031:812::-;25442:25;25437:3;25430:38;25412:3;25497:6;25491:13;25513:75;25581:6;25576:2;25571:3;25567:12;25560:4;25552:6;25548:17;25513:75;:::i;:::-;25652:19;25647:2;25607:16;;;25639:11;;;25632:40;25697:13;;25719:76;25697:13;25781:2;25773:11;;25766:4;25754:17;;25719:76;:::i;:::-;25815:17;25834:2;25811:26;;25031:812;-1:-1:-1;;;;25031:812:144:o;25848:220::-;25997:2;25986:9;25979:21;25960:4;26017:45;26058:2;26047:9;26043:18;26035:6;26017:45;:::i;26425:136::-;26464:3;26492:5;26482:39;;26501:18;;:::i;:::-;-1:-1:-1;;;26537:18:144;;26425:136::o","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","addPoolManager(uint256,address)":"2cf682b0","addToCloneableStrategies(address)":"41bba0b4","allocate(uint256,bytes)":"2ec38188","batchAllocate(uint256[],bytes[])":"c6dff1cf","batchRegisterRecipient(uint256[],bytes[])":"1a20bd88","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"77da8caf","createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","distribute(uint256,address[],bytes)":"3a5fbd92","fundPool(uint256,uint256)":"5acd6fac","getBaseFee()":"15e812ad","getFeeDenominator()":"f4e1fc41","getPercentFee()":"4edbaadc","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53","getRoleAdmin(bytes32)":"248a9ca3","getStrategy(uint256)":"cfc0cc34","getTreasury()":"3b19e84a","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address,address,uint256,uint256)":"a6b63eb8","isCloneableStrategy(address)":"ab2ec589","isPoolAdmin(uint256,address)":"ab3febc6","isPoolManager(uint256,address)":"29e40d4b","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","recoverFunds(address,address)":"24ae6a27","registerRecipient(uint256,bytes)":"075c0e9c","removeFromCloneableStrategies(address)":"031e2fa1","removePoolManager(uint256,address)":"7f5a70bd","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","requestOwnershipHandover()":"25692962","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","updateBaseFee(uint256)":"8e690186","updatePercentFee(uint256)":"f54fc4a0","updatePoolMetadata(uint256,(uint256,string))":"5f9ca138","updateRegistry(address)":"1a5da6c8","updateTreasury(address)":"7f51bb1f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BaseFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentFee\",\"type\":\"uint256\"}],\"name\":\"PercentFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"PoolFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"addToCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_datas\",\"type\":\"bytes[]\"}],\"name\":\"batchAllocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"batchRegisterRecipient\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"recipientIds\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"fundPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"FEE_DENOMINATOR\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getStrategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"isCloneableStrategy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeFromCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removePoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"updateBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"}],\"name\":\"updatePercentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updatePoolMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"The contract must be initialized with the 'initialize()' function.\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"params\":{\"amount\":\"Amount of the base fee paid\",\"poolId\":\"ID of the pool the base fee was paid for\"}},\"BaseFeeUpdated(uint256)\":{\"params\":{\"baseFee\":\"New base fee amount\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"PercentFeeUpdated(uint256)\":{\"params\":{\"percentFee\":\"New percentage for the fee\"}},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"params\":{\"amount\":\"Amount pool was funded with when created\",\"metadata\":\"Pool metadata\",\"poolId\":\"ID of the pool created\",\"profileId\":\"ID of the profile the pool is associated with\",\"strategy\":\"Address of the strategy contract\",\"token\":\"Address of the token pool was funded with when created\"}},\"PoolFunded(uint256,uint256,uint256)\":{\"params\":{\"amount\":\"Amount funded to the pool\",\"fee\":\"Amount of the fee paid to the treasury\",\"poolId\":\"ID of the pool funded\"}},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"params\":{\"metadata\":\"Pool metadata that was updated\",\"poolId\":\"ID of the pool updated\"}},\"RegistryUpdated(address)\":{\"params\":{\"registry\":\"Address of the new registry\"}},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"StrategyApproved(address)\":{\"params\":{\"strategy\":\"Address of the strategy approved\"}},\"StrategyRemoved(address)\":{\"params\":{\"strategy\":\"Address of the strategy removed\"}},\"TreasuryUpdated(address)\":{\"params\":{\"treasury\":\"Address of the new treasury\"}}},\"kind\":\"dev\",\"methods\":{\"addPoolManager(uint256,address)\":{\"details\":\"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to add\",\"_poolId\":\"ID of the pool\"}},\"addToCloneableStrategies(address)\":{\"details\":\"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"allocate(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().\",\"params\":{\"_data\":\"Encoded data unique to the strategy for that pool\",\"_poolId\":\"ID of the pool\"}},\"batchAllocate(uint256[],bytes[])\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.\",\"params\":{\"_datas\":\"encoded data unique to the strategy for that pool\",\"_poolIds\":\"IDs of the pools\"}},\"batchRegisterRecipient(uint256[],bytes[])\":{\"details\":\"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\",\"params\":{\"_data\":\"An array of encoded data unique to a strategy that registerRecipient() requires.\",\"_poolIds\":\"ID's of the pools\"},\"returns\":{\"recipientIds\":\"The recipient IDs that have been registered\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"custom:initstrategydata\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'\",\"details\":\"'msg.sender' must be owner or member of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool\",\"_metadata\":\"The metadata of the pool\",\"_profileId\":\"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the strategy contract the pool will use.\",\"_token\":\"The address of the token\"}},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"details\":\"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token you want to deposit into the pool on initialization\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool, and can be added/removed later by the pool admin\",\"_metadata\":\"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\",\"_profileId\":\"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the deployed custom strategy\",\"_token\":\"The address of the token you want to use in your pool\"},\"returns\":{\"poolId\":\"The ID of the pool\"}},\"distribute(uint256,address[],bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.\",\"params\":{\"_data\":\"Encoded data unique to the strategy\",\"_poolId\":\"ID of the pool\",\"_recipientIds\":\"Ids of the recipients of the distribution\"}},\"fundPool(uint256,uint256)\":{\"details\":\"Anyone can fund a pool and call this function.\",\"params\":{\"_amount\":\"The amount to be deposited into the pool\",\"_poolId\":\"ID of the pool\"}},\"getBaseFee()\":{\"returns\":{\"_0\":\"The base fee\"}},\"getFeeDenominator()\":{\"returns\":{\"FEE_DENOMINATOR\":\"The fee denominator is (1e18) which represents 100%\"}},\"getPercentFee()\":{\"returns\":{\"_0\":\"The fee percentage (1e18 = 100%)\"}},\"getPool(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The 'Pool' struct\"}},\"getRegistry()\":{\"returns\":{\"_0\":\"The registry address\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStrategy(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The address of the strategy\"}},\"getTreasury()\":{\"returns\":{\"_0\":\"The treasury address\"}},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address,address,address,uint256,uint256)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer\",\"params\":{\"_baseFee\":\"The base fee\",\"_owner\":\"The owner of allo\",\"_percentFee\":\"The percentage fee\",\"_registry\":\"The address of the registry\",\"_treasury\":\"The address of the treasury\"}},\"isCloneableStrategy(address)\":{\"params\":{\"_strategy\":\"The address of the strategy\"},\"returns\":{\"_0\":\"'true' if the strategy is cloneable, otherwise 'false'\"}},\"isPoolAdmin(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool admin, otherwise 'false'\"}},\"isPoolManager(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool manager, otherwise 'false'\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be Allo owner\",\"params\":{\"_recipient\":\"The recipient\",\"_token\":\"The token to transfer\"}},\"registerRecipient(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().\",\"params\":{\"_data\":\"Encoded data unique to a strategy that registerRecipient() requires\",\"_poolId\":\"ID of the pool\"},\"returns\":{\"_0\":\"recipientId The recipient ID that has been registered\"}},\"removeFromCloneableStrategies(address)\":{\"details\":\"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"removePoolManager(uint256,address)\":{\"details\":\"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to remove\",\"_poolId\":\"ID of the pool\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"updateBaseFee(uint256)\":{\"details\":\"Use this to update the base fee. 'msg.sender' must be Allo owner.\",\"params\":{\"_baseFee\":\"The new base fee\"}},\"updatePercentFee(uint256)\":{\"details\":\"Use this to update the fee percentage. 'msg.sender' must be Allo owner.\",\"params\":{\"_percentFee\":\"The new fee\"}},\"updatePoolMetadata(uint256,(uint256,string))\":{\"details\":\"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\",\"params\":{\"_metadata\":\"The new metadata of the pool\",\"_poolId\":\"ID of the pool\"}},\"updateRegistry(address)\":{\"details\":\"Use this to update the registry address. 'msg.sender' must be Allo owner.\",\"params\":{\"_registry\":\"The new registry address\"}},\"updateTreasury(address)\":{\"details\":\"Use this to update the treasury address. 'msg.sender' must be Allo owner.\",\"params\":{\"_treasury\":\"The new treasury address\"}}},\"stateVariables\":{\"_nonces\":{\"details\":\"'msg.sender' -> 'nonce' for cloning strategies\"},\"baseFee\":{\"details\":\"This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address.\"},\"cloneableStrategies\":{\"details\":\"Strategy.address -> bool\"},\"percentFee\":{\"details\":\"How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%\"},\"pools\":{\"details\":\"'Pool.id' -> 'Pool'\"}},\"title\":\"Allo\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"notice\":\"Emitted when the base fee is paid\"},\"BaseFeeUpdated(uint256)\":{\"notice\":\"Emitted when the base fee is updated\"},\"PercentFeeUpdated(uint256)\":{\"notice\":\"Emitted when the percent fee is updated\"},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"notice\":\"Event emitted when a new pool is created\"},\"PoolFunded(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a pool is funded\"},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"notice\":\"Emitted when a pools metadata is updated\"},\"RegistryUpdated(address)\":{\"notice\":\"Emitted when the registry address is updated\"},\"StrategyApproved(address)\":{\"notice\":\"Emitted when a strategy is approved and added to the cloneable strategies\"},\"StrategyRemoved(address)\":{\"notice\":\"Emitted when a strategy is removed from the cloneable strategies\"},\"TreasuryUpdated(address)\":{\"notice\":\"Emitted when the treasury address is updated\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"addPoolManager(uint256,address)\":{\"notice\":\"Add a pool manager\"},\"addToCloneableStrategies(address)\":{\"notice\":\"Add a strategy to the allowlist.\"},\"allocate(uint256,bytes)\":{\"notice\":\"Allocate to a recipient or multiple recipients.\"},\"batchAllocate(uint256[],bytes[])\":{\"notice\":\"Allocate to multiple pools\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"notice\":\"Register multiple recipients to multiple pools.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (by cloning a cloneable strategies).\"},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (with a custom strategy)\"},\"distribute(uint256,address[],bytes)\":{\"notice\":\"Distribute to a recipient or multiple recipients.\"},\"fundPool(uint256,uint256)\":{\"notice\":\"Fund a pool.\"},\"getBaseFee()\":{\"notice\":\"Getter for base fee.\"},\"getFeeDenominator()\":{\"notice\":\"Getter for the fee denominator\"},\"getPercentFee()\":{\"notice\":\"Getter for fee percentage.\"},\"getPool(uint256)\":{\"notice\":\"Getter for the 'Pool'.\"},\"getRegistry()\":{\"notice\":\"Getter for registry.\"},\"getStrategy(uint256)\":{\"notice\":\"Getter for the strategy.\"},\"getTreasury()\":{\"notice\":\"Getter for treasury address.\"},\"initialize(address,address,address,uint256,uint256)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isCloneableStrategy(address)\":{\"notice\":\"Getter for if strategy is cloneable.\"},\"isPoolAdmin(uint256,address)\":{\"notice\":\"Checks if the address is a pool admin.\"},\"isPoolManager(uint256,address)\":{\"notice\":\"Checks if the address is a pool manager\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfer the funds recovered to the recipient\"},\"registerRecipient(uint256,bytes)\":{\"notice\":\"Passes _data through to the strategy for that pool.\"},\"removeFromCloneableStrategies(address)\":{\"notice\":\"Remove a strategy from the allowlist\"},\"removePoolManager(uint256,address)\":{\"notice\":\"Remove a pool manager\"},\"updateBaseFee(uint256)\":{\"notice\":\"Updates the base fee.\"},\"updatePercentFee(uint256)\":{\"notice\":\"Updates the fee percentage.\"},\"updatePoolMetadata(uint256,(uint256,string))\":{\"notice\":\"Update pool metadata\"},\"updateRegistry(address)\":{\"notice\":\"Updates the registry address.\"},\"updateTreasury(address)\":{\"notice\":\"Updates the treasury address.\"}},\"notice\":\"This contract is used to create & manage pools as well as manage the protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Allo.sol\":\"Allo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BaseFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256","indexed":false}],"type":"event","name":"BaseFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"percentFee","type":"uint256","indexed":false}],"type":"event","name":"PercentFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"PoolFunded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"registry","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasuryUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPoolManager"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterRecipient","outputs":[{"internalType":"address[]","name":"recipientIds","type":"address[]"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundPool"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getFeeDenominator","outputs":[{"internalType":"uint256","name":"FEE_DENOMINATOR","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPercentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStrategy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_percentFee","type":"uint256"},{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"isCloneableStrategy","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}]},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function","name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFromCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePoolManager"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateBaseFee"},{"inputs":[{"internalType":"uint256","name":"_percentFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updatePercentFee"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePoolMetadata"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRegistry"},{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTreasury"}],"devdoc":{"kind":"dev","methods":{"addPoolManager(uint256,address)":{"details":"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to add","_poolId":"ID of the pool"}},"addToCloneableStrategies(address)":{"details":"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"allocate(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().","params":{"_data":"Encoded data unique to the strategy for that pool","_poolId":"ID of the pool"}},"batchAllocate(uint256[],bytes[])":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.","params":{"_datas":"encoded data unique to the strategy for that pool","_poolIds":"IDs of the pools"}},"batchRegisterRecipient(uint256[],bytes[])":{"details":"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.","params":{"_data":"An array of encoded data unique to a strategy that registerRecipient() requires.","_poolIds":"ID's of the pools"},"returns":{"recipientIds":"The recipient IDs that have been registered"}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"completeOwnershipHandover(address)":{"details":"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"custom:initstrategydata":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'","details":"'msg.sender' must be owner or member of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool","_metadata":"The metadata of the pool","_profileId":"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the strategy contract the pool will use.","_token":"The address of the token"}},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"details":"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token you want to deposit into the pool on initialization","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool, and can be added/removed later by the pool admin","_metadata":"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)","_profileId":"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the deployed custom strategy","_token":"The address of the token you want to use in your pool"},"returns":{"poolId":"The ID of the pool"}},"distribute(uint256,address[],bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.","params":{"_data":"Encoded data unique to the strategy","_poolId":"ID of the pool","_recipientIds":"Ids of the recipients of the distribution"}},"fundPool(uint256,uint256)":{"details":"Anyone can fund a pool and call this function.","params":{"_amount":"The amount to be deposited into the pool","_poolId":"ID of the pool"}},"getBaseFee()":{"returns":{"_0":"The base fee"}},"getFeeDenominator()":{"returns":{"FEE_DENOMINATOR":"The fee denominator is (1e18) which represents 100%"}},"getPercentFee()":{"returns":{"_0":"The fee percentage (1e18 = 100%)"}},"getPool(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The 'Pool' struct"}},"getRegistry()":{"returns":{"_0":"The registry address"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getStrategy(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The address of the strategy"}},"getTreasury()":{"returns":{"_0":"The treasury address"}},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,address,address,uint256,uint256)":{"details":"During upgrade -> a higher version should be passed to reinitializer","params":{"_baseFee":"The base fee","_owner":"The owner of allo","_percentFee":"The percentage fee","_registry":"The address of the registry","_treasury":"The address of the treasury"}},"isCloneableStrategy(address)":{"params":{"_strategy":"The address of the strategy"},"returns":{"_0":"'true' if the strategy is cloneable, otherwise 'false'"}},"isPoolAdmin(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool admin, otherwise 'false'"}},"isPoolManager(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool manager, otherwise 'false'"}},"owner()":{"details":"Returns the owner of the contract."},"ownershipHandoverExpiresAt(address)":{"details":"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"recoverFunds(address,address)":{"details":"'msg.sender' must be Allo owner","params":{"_recipient":"The recipient","_token":"The token to transfer"}},"registerRecipient(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().","params":{"_data":"Encoded data unique to a strategy that registerRecipient() requires","_poolId":"ID of the pool"},"returns":{"_0":"recipientId The recipient ID that has been registered"}},"removeFromCloneableStrategies(address)":{"details":"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"removePoolManager(uint256,address)":{"details":"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to remove","_poolId":"ID of the pool"}},"renounceOwnership()":{"details":"Allows the owner to renounce their ownership."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"requestOwnershipHandover()":{"details":"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"updateBaseFee(uint256)":{"details":"Use this to update the base fee. 'msg.sender' must be Allo owner.","params":{"_baseFee":"The new base fee"}},"updatePercentFee(uint256)":{"details":"Use this to update the fee percentage. 'msg.sender' must be Allo owner.","params":{"_percentFee":"The new fee"}},"updatePoolMetadata(uint256,(uint256,string))":{"details":"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.","params":{"_metadata":"The new metadata of the pool","_poolId":"ID of the pool"}},"updateRegistry(address)":{"details":"Use this to update the registry address. 'msg.sender' must be Allo owner.","params":{"_registry":"The new registry address"}},"updateTreasury(address)":{"details":"Use this to update the treasury address. 'msg.sender' must be Allo owner.","params":{"_treasury":"The new treasury address"}}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"addPoolManager(uint256,address)":{"notice":"Add a pool manager"},"addToCloneableStrategies(address)":{"notice":"Add a strategy to the allowlist."},"allocate(uint256,bytes)":{"notice":"Allocate to a recipient or multiple recipients."},"batchAllocate(uint256[],bytes[])":{"notice":"Allocate to multiple pools"},"batchRegisterRecipient(uint256[],bytes[])":{"notice":"Register multiple recipients to multiple pools."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (by cloning a cloneable strategies)."},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (with a custom strategy)"},"distribute(uint256,address[],bytes)":{"notice":"Distribute to a recipient or multiple recipients."},"fundPool(uint256,uint256)":{"notice":"Fund a pool."},"getBaseFee()":{"notice":"Getter for base fee."},"getFeeDenominator()":{"notice":"Getter for the fee denominator"},"getPercentFee()":{"notice":"Getter for fee percentage."},"getPool(uint256)":{"notice":"Getter for the 'Pool'."},"getRegistry()":{"notice":"Getter for registry."},"getStrategy(uint256)":{"notice":"Getter for the strategy."},"getTreasury()":{"notice":"Getter for treasury address."},"initialize(address,address,address,uint256,uint256)":{"notice":"Initializes the contract after an upgrade"},"isCloneableStrategy(address)":{"notice":"Getter for if strategy is cloneable."},"isPoolAdmin(uint256,address)":{"notice":"Checks if the address is a pool admin."},"isPoolManager(uint256,address)":{"notice":"Checks if the address is a pool manager"},"recoverFunds(address,address)":{"notice":"Transfer the funds recovered to the recipient"},"registerRecipient(uint256,bytes)":{"notice":"Passes _data through to the strategy for that pool."},"removeFromCloneableStrategies(address)":{"notice":"Remove a strategy from the allowlist"},"removePoolManager(uint256,address)":{"notice":"Remove a pool manager"},"updateBaseFee(uint256)":{"notice":"Updates the base fee."},"updatePercentFee(uint256)":{"notice":"Updates the fee percentage."},"updatePoolMetadata(uint256,(uint256,string))":{"notice":"Update pool metadata"},"updateRegistry(address)":{"notice":"Updates the registry address."},"updateTreasury(address)":{"notice":"Updates the treasury address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Allo.sol":"Allo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":53246,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53249,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53951,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":54225,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":52645,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)52640_storage)"},{"astId":52952,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":53423,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_status","offset":0,"slot":"151","type":"t_uint256"},{"astId":53492,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":34,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"percentFee","offset":0,"slot":"201","type":"t_uint256"},{"astId":37,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"baseFee","offset":0,"slot":"202","type":"t_uint256"},{"astId":40,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_poolIndex","offset":0,"slot":"203","type":"t_uint256"},{"astId":43,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"treasury","offset":0,"slot":"204","type":"t_address_payable"},{"astId":47,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"registry","offset":0,"slot":"205","type":"t_contract(IRegistry)2802"},{"astId":52,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_nonces","offset":0,"slot":"206","type":"t_mapping(t_address,t_uint256)"},{"astId":58,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"pools","offset":0,"slot":"207","type":"t_mapping(t_uint256,t_struct(Pool)2319_storage)"},{"astId":63,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"cloneableStrategies","offset":0,"slot":"208","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(IStrategy)2969":{"encoding":"inplace","label":"contract IStrategy","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)52640_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52640_storage"},"t_mapping(t_uint256,t_struct(Pool)2319_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct IAllo.Pool)","numberOfBytes":"32","value":"t_struct(Pool)2319_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(Pool)2319_storage":{"encoding":"inplace","label":"struct IAllo.Pool","numberOfBytes":"224","members":[{"astId":2306,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"profileId","offset":0,"slot":"0","type":"t_bytes32"},{"astId":2309,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"strategy","offset":0,"slot":"1","type":"t_contract(IStrategy)2969"},{"astId":2311,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"token","offset":0,"slot":"2","type":"t_address"},{"astId":2314,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"metadata","offset":0,"slot":"3","type":"t_struct(Metadata)3098_storage"},{"astId":2316,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"managerRole","offset":0,"slot":"5","type":"t_bytes32"},{"astId":2318,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"adminRole","offset":0,"slot":"6","type":"t_bytes32"}]},"t_struct(RoleData)52640_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52637,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52639,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/Allo.sol","id":1391,"exportedSymbols":{"AccessControlUpgradeable":[52953],"AddressUpgradeable":[53901],"Allo":[1390],"Clone":[3002],"ContextUpgradeable":[53952],"ERC165Upgradeable":[54226],"Errors":[3089],"IAccessControlUpgradeable":[53026],"IAllo":[2610],"IERC165Upgradeable":[54238],"IERC20Upgradeable":[53571],"IRegistry":[2802],"IStrategy":[2969],"Initializable":[53408],"MathUpgradeable":[55104],"Metadata":[3098],"Native":[3106],"Ownable":[4095],"ReentrancyGuardUpgradeable":[53493],"SignedMathUpgradeable":[55209],"StringsUpgradeable":[54181],"Transfer":[3317]},"nodeType":"SourceUnit","src":"42:34082:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"42:23:0","nodes":[],"literals":["solidity","0.8",".19"]},{"id":2,"nodeType":"ImportDirective","src":"89:37:0","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/auth/Ownable.sol","file":"solady/src/auth/Ownable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":4096,"symbolAliases":[],"unitAlias":""},{"id":3,"nodeType":"ImportDirective","src":"127:84:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53409,"symbolAliases":[],"unitAlias":""},{"id":4,"nodeType":"ImportDirective","src":"212:88:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53572,"symbolAliases":[],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"301:90:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":52954,"symbolAliases":[],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"392:94:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53494,"symbolAliases":[],"unitAlias":""},{"id":7,"nodeType":"ImportDirective","src":"501:32:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"./interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":2611,"symbolAliases":[],"unitAlias":""},{"id":9,"nodeType":"ImportDirective","src":"557:44:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"./libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":8,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"565:5:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11,"nodeType":"ImportDirective","src":"602:46:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"./libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":10,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"610:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12,"nodeType":"ImportDirective","src":"649:32:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"./libraries/Native.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3107,"symbolAliases":[],"unitAlias":""},{"id":14,"nodeType":"ImportDirective","src":"682:50:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Transfer.sol","file":"./libraries/Transfer.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3318,"symbolAliases":[{"foreign":{"id":13,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"690:8:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1390,"nodeType":"ContractDefinition","src":"5076:29047:0","nodes":[{"id":34,"nodeType":"VariableDeclaration","src":"5862:26:0","nodes":[],"constant":false,"documentation":{"id":32,"nodeType":"StructuredDocumentation","src":"5344:513:0","text":"@notice Percentage that is used to calculate the fee Allo takes from each pool when funded\n and is deducted when a pool is funded. So if you want to fund a round with 1000 DAI and the fee\n percentage is 1e17 (10%), then 100 DAI will be deducted from the 1000 DAI and the pool will be\n funded with 900 DAI. The fee is then sent to the treasury address.\n @dev How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%"},"mutability":"mutable","name":"percentFee","nameLocation":"5878:10:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33,"name":"uint256","nodeType":"ElementaryTypeName","src":"5862:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":37,"nodeType":"VariableDeclaration","src":"6339:24:0","nodes":[],"constant":false,"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"5895:439:0","text":"@notice Fee Allo charges for all pools on creation\n @dev This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool\n with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created\n with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address."},"mutability":"mutable","name":"baseFee","nameLocation":"6356:7:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"6431:26:0","nodes":[],"constant":false,"documentation":{"id":38,"nodeType":"StructuredDocumentation","src":"6370:56:0","text":"@notice Incremental index to track the pools created"},"mutability":"mutable","name":"_poolIndex","nameLocation":"6447:10:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"6431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":43,"nodeType":"VariableDeclaration","src":"6494:32:0","nodes":[],"constant":false,"documentation":{"id":41,"nodeType":"StructuredDocumentation","src":"6464:25:0","text":"@notice Allo treasury"},"mutability":"mutable","name":"treasury","nameLocation":"6518:8:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"6494:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"private"},{"id":47,"nodeType":"VariableDeclaration","src":"6567:26:0","nodes":[],"constant":false,"documentation":{"id":44,"nodeType":"StructuredDocumentation","src":"6533:29:0","text":"@notice Registry contract"},"mutability":"mutable","name":"registry","nameLocation":"6585:8:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":46,"nodeType":"UserDefinedTypeName","pathNode":{"id":45,"name":"IRegistry","nameLocations":["6567:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6567:9:0"},"referencedDeclaration":2802,"src":"6567:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"private"},{"id":52,"nodeType":"VariableDeclaration","src":"6733:43:0","nodes":[],"constant":false,"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"6600:128:0","text":"@notice Maps the `msg.sender` to a `nonce` to prevent duplicates\n @dev 'msg.sender' -> 'nonce' for cloning strategies"},"mutability":"mutable","name":"_nonces","nameLocation":"6769:7:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"6741:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6733:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"6752:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":58,"nodeType":"VariableDeclaration","src":"6869:38:0","nodes":[],"constant":false,"documentation":{"id":53,"nodeType":"StructuredDocumentation","src":"6783:81:0","text":"@notice Maps the pool ID to the pool details\n @dev 'Pool.id' -> 'Pool'"},"mutability":"mutable","name":"pools","nameLocation":"6902:5:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool)"},"typeName":{"id":57,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54,"name":"uint256","nodeType":"ElementaryTypeName","src":"6877:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"6869:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56,"nodeType":"UserDefinedTypeName","pathNode":{"id":55,"name":"Pool","nameLocations":["6888:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"6888:4:0"},"referencedDeclaration":2319,"src":"6888:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}}},"visibility":"private"},{"id":63,"nodeType":"VariableDeclaration","src":"7064:52:0","nodes":[],"constant":false,"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"6914:145:0","text":"@notice Returns a bool for whether a strategy is cloneable or not using the strategy address as the key\n @dev Strategy.address -> bool"},"mutability":"mutable","name":"cloneableStrategies","nameLocation":"7097:19:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":62,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":60,"name":"address","nodeType":"ElementaryTypeName","src":"7072:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7064:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":61,"name":"bool","nodeType":"ElementaryTypeName","src":"7083:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":101,"nodeType":"FunctionDefinition","src":"7626:593:0","nodes":[],"body":{"id":100,"nodeType":"Block","src":"7819:400:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":81,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"7907:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7890:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7890:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83,"nodeType":"ExpressionStatement","src":"7890:24:0"},{"expression":{"arguments":[{"id":85,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"7984:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84,"name":"_updateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"7968:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7968:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87,"nodeType":"ExpressionStatement","src":"7968:26:0"},{"expression":{"arguments":[{"id":89,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"8064:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":88,"name":"_updateTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"8048:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8048:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91,"nodeType":"ExpressionStatement","src":"8048:26:0"},{"expression":{"arguments":[{"id":93,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"8137:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":92,"name":"_updatePercentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"8119:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":95,"nodeType":"ExpressionStatement","src":"8119:30:0"},{"expression":{"arguments":[{"id":97,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"8203:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":96,"name":"_updateBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"8188:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99,"nodeType":"ExpressionStatement","src":"8188:24:0"}]},"baseFunctions":[2404],"documentation":{"id":64,"nodeType":"StructuredDocumentation","src":"7257:364:0","text":"@notice Initializes the contract after an upgrade\n @dev During upgrade -> a higher version should be passed to reinitializer\n @param _owner The owner of allo\n @param _registry The address of the registry\n @param _treasury The address of the treasury\n @param _percentFee The percentage fee\n @param _baseFee The base fee"},"functionSelector":"a6b63eb8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"31","id":77,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":78,"kind":"modifierInvocation","modifierName":{"id":76,"name":"reinitializer","nameLocations":["7802:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":53343,"src":"7802:13:0"},"nodeType":"ModifierInvocation","src":"7802:16:0"}],"name":"initialize","nameLocation":"7635:10:0","parameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"mutability":"mutable","name":"_owner","nameLocation":"7663:6:0","nodeType":"VariableDeclaration","scope":101,"src":"7655:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"7655:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68,"mutability":"mutable","name":"_registry","nameLocation":"7687:9:0","nodeType":"VariableDeclaration","scope":101,"src":"7679:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"7679:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"_treasury","nameLocation":"7722:9:0","nodeType":"VariableDeclaration","scope":101,"src":"7706:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"7706:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":72,"mutability":"mutable","name":"_percentFee","nameLocation":"7749:11:0","nodeType":"VariableDeclaration","scope":101,"src":"7741:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71,"name":"uint256","nodeType":"ElementaryTypeName","src":"7741:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74,"mutability":"mutable","name":"_baseFee","nameLocation":"7778:8:0","nodeType":"VariableDeclaration","scope":101,"src":"7770:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7645:147:0"},"returnParameters":{"id":79,"nodeType":"ParameterList","parameters":[],"src":"7819:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":112,"nodeType":"ModifierDefinition","src":"8573:100:0","nodes":[],"body":{"id":111,"nodeType":"Block","src":"8615:58:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":107,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104,"src":"8647:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":106,"name":"_checkOnlyPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"8625:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109,"nodeType":"ExpressionStatement","src":"8625:30:0"},{"id":110,"nodeType":"PlaceholderStatement","src":"8665:1:0"}]},"documentation":{"id":102,"nodeType":"StructuredDocumentation","src":"8463:105:0","text":"@notice Reverts UNAUTHORIZED() if the caller is not a pool manager\n @param _poolId The pool id"},"name":"onlyPoolManager","nameLocation":"8582:15:0","parameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"_poolId","nameLocation":"8606:7:0","nodeType":"VariableDeclaration","scope":112,"src":"8598:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":103,"name":"uint256","nodeType":"ElementaryTypeName","src":"8598:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8597:17:0"},"virtual":false,"visibility":"internal"},{"id":123,"nodeType":"ModifierDefinition","src":"8787:96:0","nodes":[],"body":{"id":122,"nodeType":"Block","src":"8827:56:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":118,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"8857:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":117,"name":"_checkOnlyPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"8837:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8837:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120,"nodeType":"ExpressionStatement","src":"8837:28:0"},{"id":121,"nodeType":"PlaceholderStatement","src":"8875:1:0"}]},"documentation":{"id":113,"nodeType":"StructuredDocumentation","src":"8679:103:0","text":"@notice Reverts UNAUTHORIZED() if the caller is not a pool admin\n @param _poolId The pool id"},"name":"onlyPoolAdmin","nameLocation":"8796:13:0","parameters":{"id":116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115,"mutability":"mutable","name":"_poolId","nameLocation":"8818:7:0","nodeType":"VariableDeclaration","scope":123,"src":"8810:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8810:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8809:17:0"},"virtual":false,"visibility":"internal"},{"id":175,"nodeType":"FunctionDefinition","src":"10281:884:0","nodes":[],"body":{"id":174,"nodeType":"Block","src":"10582:583:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":145,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"10687:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10708: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":147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10700:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":146,"name":"address","nodeType":"ElementaryTypeName","src":"10700:7:0","typeDescriptions":{}}},"id":149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10687:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":154,"nodeType":"IfStatement","src":"10683:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":151,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"10719:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":153,"nodeType":"RevertStatement","src":"10712:21:0"}},{"condition":{"arguments":[{"id":156,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"10919:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":155,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"10898:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10898:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":161,"nodeType":"IfStatement","src":"10894:66:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":158,"name":"IS_APPROVED_STRATEGY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"10938:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10938:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":160,"nodeType":"RevertStatement","src":"10931:29:0"}},{"expression":{"arguments":[{"id":163,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"11067:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":165,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"11089:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":164,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"11079:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$2969_$","typeString":"type(contract IStrategy)"}},"id":166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11079:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":167,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"11101:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":168,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"11120:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":169,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"11128:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":170,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":137,"src":"11137:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":171,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"11148:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":162,"name":"_createPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"11055:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,contract IStrategy,bytes memory,address,uint256,struct Metadata memory,address[] memory) returns (uint256)"}},"id":172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11055:103:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":144,"id":173,"nodeType":"Return","src":"11048:110:0"}]},"documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"9025:1251:0","text":"@notice Creates a new pool (with a custom strategy)\n @dev 'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data\n will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy\n address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must\n be a member or owner of the profile id passed as '_profileId'.\n @param _profileId The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\n @param _strategy The address of the deployed custom strategy\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token you want to use in your pool\n @param _amount The amount of the token you want to deposit into the pool on initialization\n @param _metadata The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\n @param _managers The managers of the pool, and can be added/removed later by the pool admin\n @return poolId The ID of the pool"},"functionSelector":"e1007d4a","implemented":true,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"10290:28:0","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"_profileId","nameLocation":"10336:10:0","nodeType":"VariableDeclaration","scope":175,"src":"10328:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10328:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"_strategy","nameLocation":"10364:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10356:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"10356:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"_initStrategyData","nameLocation":"10396:17:0","nodeType":"VariableDeclaration","scope":175,"src":"10383:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":129,"name":"bytes","nodeType":"ElementaryTypeName","src":"10383:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":132,"mutability":"mutable","name":"_token","nameLocation":"10431:6:0","nodeType":"VariableDeclaration","scope":175,"src":"10423:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":131,"name":"address","nodeType":"ElementaryTypeName","src":"10423:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":134,"mutability":"mutable","name":"_amount","nameLocation":"10455:7:0","nodeType":"VariableDeclaration","scope":175,"src":"10447:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133,"name":"uint256","nodeType":"ElementaryTypeName","src":"10447:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":137,"mutability":"mutable","name":"_metadata","nameLocation":"10488:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10472:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":136,"nodeType":"UserDefinedTypeName","pathNode":{"id":135,"name":"Metadata","nameLocations":["10472:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10472:8:0"},"referencedDeclaration":3098,"src":"10472:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"_managers","nameLocation":"10524:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10507:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"10507:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ArrayTypeName","src":"10507:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10318:221:0"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"poolId","nameLocation":"10574:6:0","nodeType":"VariableDeclaration","scope":175,"src":"10566:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":142,"name":"uint256","nodeType":"ElementaryTypeName","src":"10566:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10565:16:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":229,"nodeType":"FunctionDefinition","src":"11971:701:0","nodes":[],"body":{"id":228,"nodeType":"Block","src":"12267:405:0","nodes":[],"statements":[{"condition":{"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12281:32:0","subExpression":{"arguments":[{"id":200,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":180,"src":"12303:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":199,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"12282:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12282:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":207,"nodeType":"IfStatement","src":"12277:93:0","trueBody":{"id":206,"nodeType":"Block","src":"12315:55:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":203,"name":"NOT_APPROVED_STRATEGY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"12336:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":205,"nodeType":"RevertStatement","src":"12329:30:0"}]}},{"expression":{"arguments":[{"id":209,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"12451:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":213,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":180,"src":"12503:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12514:21:0","subExpression":{"baseExpression":{"id":214,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"12514:7:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":217,"indexExpression":{"expression":{"id":215,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12522:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12526:6:0","memberName":"sender","nodeType":"MemberAccess","src":"12522:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12514:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":211,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"12485:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12491:11:0","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"12485:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12485:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":210,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"12475:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$2969_$","typeString":"type(contract IStrategy)"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12475:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":221,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"12551:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":222,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"12582:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":223,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"12602:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":224,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"12623:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":225,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"12646:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":208,"name":"_createPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"12426:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,contract IStrategy,bytes memory,address,uint256,struct Metadata memory,address[] memory) returns (uint256)"}},"id":226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12426:239:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":198,"id":227,"nodeType":"Return","src":"12419:246:0"}]},"documentation":{"id":176,"nodeType":"StructuredDocumentation","src":"11171:795:0","text":"@notice Creates a new pool (by cloning a cloneable strategies).\n @dev 'msg.sender' must be owner or member of the profile id passed as '_profileId'.\n @param _profileId The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\n @param _strategy The address of the strategy contract the pool will use.\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token\n @param _amount The amount of the token\n @param _metadata The metadata of the pool\n @param _managers The managers of the pool\n @custom:initstrategydata The encoded data will be specific to a given strategy requirements,\n reference the strategy implementation of 'initialize()'"},"functionSelector":"77da8caf","implemented":true,"kind":"function","modifiers":[{"id":195,"kind":"modifierInvocation","modifierName":{"id":194,"name":"nonReentrant","nameLocations":["12229:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"12229:12:0"},"nodeType":"ModifierInvocation","src":"12229:12:0"}],"name":"createPool","nameLocation":"11980:10:0","parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_profileId","nameLocation":"12008:10:0","nodeType":"VariableDeclaration","scope":229,"src":"12000:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12000:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":180,"mutability":"mutable","name":"_strategy","nameLocation":"12036:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12028:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":179,"name":"address","nodeType":"ElementaryTypeName","src":"12028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":182,"mutability":"mutable","name":"_initStrategyData","nameLocation":"12068:17:0","nodeType":"VariableDeclaration","scope":229,"src":"12055:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":181,"name":"bytes","nodeType":"ElementaryTypeName","src":"12055:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":184,"mutability":"mutable","name":"_token","nameLocation":"12103:6:0","nodeType":"VariableDeclaration","scope":229,"src":"12095:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"12095:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":186,"mutability":"mutable","name":"_amount","nameLocation":"12127:7:0","nodeType":"VariableDeclaration","scope":229,"src":"12119:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":185,"name":"uint256","nodeType":"ElementaryTypeName","src":"12119:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"_metadata","nameLocation":"12160:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12144:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":188,"nodeType":"UserDefinedTypeName","pathNode":{"id":187,"name":"Metadata","nameLocations":["12144:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12144:8:0"},"referencedDeclaration":3098,"src":"12144:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":192,"mutability":"mutable","name":"_managers","nameLocation":"12196:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12179:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"12179:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":191,"nodeType":"ArrayTypeName","src":"12179:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11990:221:0"},"returnParameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"mutability":"mutable","name":"poolId","nameLocation":"12259:6:0","nodeType":"VariableDeclaration","scope":229,"src":"12251:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint256","nodeType":"ElementaryTypeName","src":"12251:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12250:16:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":260,"nodeType":"FunctionDefinition","src":"12894:247:0","nodes":[],"body":{"id":259,"nodeType":"Block","src":"13000:141:0","nodes":[],"statements":[{"assignments":[243],"declarations":[{"constant":false,"id":243,"mutability":"mutable","name":"pool","nameLocation":"13023:4:0","nodeType":"VariableDeclaration","scope":259,"src":"13010:17:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":242,"nodeType":"UserDefinedTypeName","pathNode":{"id":241,"name":"Pool","nameLocations":["13010:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"13010:4:0"},"referencedDeclaration":2319,"src":"13010:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":247,"initialValue":{"baseExpression":{"id":244,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"13030:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":246,"indexExpression":{"id":245,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"13036:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13030:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13010:34:0"},{"expression":{"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":248,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"13054:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool storage pointer"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13059:8:0","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2314,"src":"13054:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":251,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"13070:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"13054:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":253,"nodeType":"ExpressionStatement","src":"13054:25:0"},{"eventCall":{"arguments":[{"id":255,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"13115:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":256,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"13124:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":254,"name":"PoolMetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2344,"src":"13095:19:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,struct Metadata memory)"}},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13095:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":258,"nodeType":"EmitStatement","src":"13090:44:0"}]},"baseFunctions":[2413],"documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"12678:211:0","text":"@notice Update pool metadata\n @dev 'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\n @param _poolId ID of the pool\n @param _metadata The new metadata of the pool"},"functionSelector":"5f9ca138","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":238,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"12991:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":239,"kind":"modifierInvocation","modifierName":{"id":237,"name":"onlyPoolManager","nameLocations":["12975:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":112,"src":"12975:15:0"},"nodeType":"ModifierInvocation","src":"12975:24:0"}],"name":"updatePoolMetadata","nameLocation":"12903:18:0","parameters":{"id":236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":232,"mutability":"mutable","name":"_poolId","nameLocation":"12930:7:0","nodeType":"VariableDeclaration","scope":260,"src":"12922:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":231,"name":"uint256","nodeType":"ElementaryTypeName","src":"12922:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"_metadata","nameLocation":"12955:9:0","nodeType":"VariableDeclaration","scope":260,"src":"12939:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"Metadata","nameLocations":["12939:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12939:8:0"},"referencedDeclaration":3098,"src":"12939:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"12921:44:0"},"returnParameters":{"id":240,"nodeType":"ParameterList","parameters":[],"src":"13000:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":273,"nodeType":"FunctionDefinition","src":"13330:105:0","nodes":[],"body":{"id":272,"nodeType":"Block","src":"13392:43:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":269,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"13418:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":268,"name":"_updateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"13402:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13402:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":271,"nodeType":"ExpressionStatement","src":"13402:26:0"}]},"baseFunctions":[2419],"documentation":{"id":261,"nodeType":"StructuredDocumentation","src":"13147:178:0","text":"@notice Updates the registry address.\n @dev Use this to update the registry address. 'msg.sender' must be Allo owner.\n @param _registry The new registry address"},"functionSelector":"1a5da6c8","implemented":true,"kind":"function","modifiers":[{"id":266,"kind":"modifierInvocation","modifierName":{"id":265,"name":"onlyOwner","nameLocations":["13382:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13382:9:0"},"nodeType":"ModifierInvocation","src":"13382:9:0"}],"name":"updateRegistry","nameLocation":"13339:14:0","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"mutability":"mutable","name":"_registry","nameLocation":"13362:9:0","nodeType":"VariableDeclaration","scope":273,"src":"13354:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"13354:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13353:19:0"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[],"src":"13392:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":286,"nodeType":"FunctionDefinition","src":"13624:113:0","nodes":[],"body":{"id":285,"nodeType":"Block","src":"13694:43:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":282,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"13720:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":281,"name":"_updateTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"13704:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"ExpressionStatement","src":"13704:26:0"}]},"baseFunctions":[2425],"documentation":{"id":274,"nodeType":"StructuredDocumentation","src":"13441:178:0","text":"@notice Updates the treasury address.\n @dev Use this to update the treasury address. 'msg.sender' must be Allo owner.\n @param _treasury The new treasury address"},"functionSelector":"7f51bb1f","implemented":true,"kind":"function","modifiers":[{"id":279,"kind":"modifierInvocation","modifierName":{"id":278,"name":"onlyOwner","nameLocations":["13684:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13684:9:0"},"nodeType":"ModifierInvocation","src":"13684:9:0"}],"name":"updateTreasury","nameLocation":"13633:14:0","parameters":{"id":277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":276,"mutability":"mutable","name":"_treasury","nameLocation":"13664:9:0","nodeType":"VariableDeclaration","scope":286,"src":"13648:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":275,"name":"address","nodeType":"ElementaryTypeName","src":"13648:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"13647:27:0"},"returnParameters":{"id":280,"nodeType":"ParameterList","parameters":[],"src":"13694:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":299,"nodeType":"FunctionDefinition","src":"13911:113:0","nodes":[],"body":{"id":298,"nodeType":"Block","src":"13977:47:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":295,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":289,"src":"14005:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":294,"name":"_updatePercentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"13987:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13987:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":297,"nodeType":"ExpressionStatement","src":"13987:30:0"}]},"baseFunctions":[2431],"documentation":{"id":287,"nodeType":"StructuredDocumentation","src":"13743:163:0","text":"@notice Updates the fee percentage.\n @dev Use this to update the fee percentage. 'msg.sender' must be Allo owner.\n @param _percentFee The new fee"},"functionSelector":"f54fc4a0","implemented":true,"kind":"function","modifiers":[{"id":292,"kind":"modifierInvocation","modifierName":{"id":291,"name":"onlyOwner","nameLocations":["13967:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13967:9:0"},"nodeType":"ModifierInvocation","src":"13967:9:0"}],"name":"updatePercentFee","nameLocation":"13920:16:0","parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"_percentFee","nameLocation":"13945:11:0","nodeType":"VariableDeclaration","scope":299,"src":"13937:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":288,"name":"uint256","nodeType":"ElementaryTypeName","src":"13937:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13936:21:0"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[],"src":"13977:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":312,"nodeType":"FunctionDefinition","src":"14188:101:0","nodes":[],"body":{"id":311,"nodeType":"Block","src":"14248:41:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":308,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"14273:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":307,"name":"_updateBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"14258:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14258:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"ExpressionStatement","src":"14258:24:0"}]},"baseFunctions":[2437],"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"14030:153:0","text":"@notice Updates the base fee.\n @dev Use this to update the base fee. 'msg.sender' must be Allo owner.\n @param _baseFee The new base fee"},"functionSelector":"8e690186","implemented":true,"kind":"function","modifiers":[{"id":305,"kind":"modifierInvocation","modifierName":{"id":304,"name":"onlyOwner","nameLocations":["14238:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14238:9:0"},"nodeType":"ModifierInvocation","src":"14238:9:0"}],"name":"updateBaseFee","nameLocation":"14197:13:0","parameters":{"id":303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"mutability":"mutable","name":"_baseFee","nameLocation":"14219:8:0","nodeType":"VariableDeclaration","scope":312,"src":"14211:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"14211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14210:18:0"},"returnParameters":{"id":306,"nodeType":"ParameterList","parameters":[],"src":"14248:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":341,"nodeType":"FunctionDefinition","src":"14481:229:0","nodes":[],"body":{"id":340,"nodeType":"Block","src":"14553:157:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":320,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14567:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14588: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":322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14580:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"14580:7:0","typeDescriptions":{}}},"id":324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14567:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":329,"nodeType":"IfStatement","src":"14563:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":326,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"14599:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14599:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":328,"nodeType":"RevertStatement","src":"14592:21:0"}},{"expression":{"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":330,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"14624:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":332,"indexExpression":{"id":331,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14644:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14624:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14657:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14624:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":335,"nodeType":"ExpressionStatement","src":"14624:37:0"},{"eventCall":{"arguments":[{"id":337,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14693:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":336,"name":"StrategyApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2385,"src":"14676:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14676:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":339,"nodeType":"EmitStatement","src":"14671:32:0"}]},"baseFunctions":[2443],"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"14295:181:0","text":"@notice Add a strategy to the allowlist.\n @dev Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\n @param _strategy The address of the strategy"},"functionSelector":"41bba0b4","implemented":true,"kind":"function","modifiers":[{"id":318,"kind":"modifierInvocation","modifierName":{"id":317,"name":"onlyOwner","nameLocations":["14543:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14543:9:0"},"nodeType":"ModifierInvocation","src":"14543:9:0"}],"name":"addToCloneableStrategies","nameLocation":"14490:24:0","parameters":{"id":316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":315,"mutability":"mutable","name":"_strategy","nameLocation":"14523:9:0","nodeType":"VariableDeclaration","scope":341,"src":"14515:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"14515:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14514:19:0"},"returnParameters":{"id":319,"nodeType":"ParameterList","parameters":[],"src":"14553:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":360,"nodeType":"FunctionDefinition","src":"14900:288:0","nodes":[],"body":{"id":359,"nodeType":"Block","src":"14977:211:0","nodes":[],"statements":[{"expression":{"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":349,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"15059:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":351,"indexExpression":{"id":350,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"15079:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15059:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15092:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15059:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":354,"nodeType":"ExpressionStatement","src":"15059:38:0"},{"eventCall":{"arguments":[{"id":356,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"15171:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":355,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"15155:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15155:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":358,"nodeType":"EmitStatement","src":"15150:31:0"}]},"baseFunctions":[2449],"documentation":{"id":342,"nodeType":"StructuredDocumentation","src":"14716:179:0","text":"@notice Remove a strategy from the allowlist\n @dev Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\n @param _strategy The address of the strategy"},"functionSelector":"031e2fa1","implemented":true,"kind":"function","modifiers":[{"id":347,"kind":"modifierInvocation","modifierName":{"id":346,"name":"onlyOwner","nameLocations":["14967:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14967:9:0"},"nodeType":"ModifierInvocation","src":"14967:9:0"}],"name":"removeFromCloneableStrategies","nameLocation":"14909:29:0","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"mutability":"mutable","name":"_strategy","nameLocation":"14947:9:0","nodeType":"VariableDeclaration","scope":360,"src":"14939:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":343,"name":"address","nodeType":"ElementaryTypeName","src":"14939:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14938:19:0"},"returnParameters":{"id":348,"nodeType":"ParameterList","parameters":[],"src":"14977:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":390,"nodeType":"FunctionDefinition","src":"15387:358:0","nodes":[],"body":{"id":389,"nodeType":"Block","src":"15478:267:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":371,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"15568:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15588: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":373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15580:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":372,"name":"address","nodeType":"ElementaryTypeName","src":"15580:7:0","typeDescriptions":{}}},"id":375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15568:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":380,"nodeType":"IfStatement","src":"15564:49:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":377,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"15599:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15599:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":379,"nodeType":"RevertStatement","src":"15592:21:0"}},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":382,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"15701:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":384,"indexExpression":{"id":383,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"15707:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15701:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15716:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"15701:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":386,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"15729:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":381,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"15690:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15690:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":388,"nodeType":"ExpressionStatement","src":"15690:48:0"}]},"baseFunctions":[2457],"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"15194:188:0","text":"@notice Add a pool manager\n @dev Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\n @param _poolId ID of the pool\n @param _manager The address to add"},"functionSelector":"2cf682b0","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":368,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"15469:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":369,"kind":"modifierInvocation","modifierName":{"id":367,"name":"onlyPoolAdmin","nameLocations":["15455:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":123,"src":"15455:13:0"},"nodeType":"ModifierInvocation","src":"15455:22:0"}],"name":"addPoolManager","nameLocation":"15396:14:0","parameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":363,"mutability":"mutable","name":"_poolId","nameLocation":"15419:7:0","nodeType":"VariableDeclaration","scope":390,"src":"15411:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":362,"name":"uint256","nodeType":"ElementaryTypeName","src":"15411:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":365,"mutability":"mutable","name":"_manager","nameLocation":"15436:8:0","nodeType":"VariableDeclaration","scope":390,"src":"15428:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":364,"name":"address","nodeType":"ElementaryTypeName","src":"15428:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15410:35:0"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[],"src":"15478:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":410,"nodeType":"FunctionDefinition","src":"15950:160:0","nodes":[],"body":{"id":409,"nodeType":"Block","src":"16044:66:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":402,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"16066:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":404,"indexExpression":{"id":403,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"16072:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16066:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16081:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"16066:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":406,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"16094:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":401,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"16054:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":408,"nodeType":"ExpressionStatement","src":"16054:49:0"}]},"baseFunctions":[2465],"documentation":{"id":391,"nodeType":"StructuredDocumentation","src":"15751:194:0","text":"@notice Remove a pool manager\n @dev Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\n @param _poolId ID of the pool\n @param _manager The address to remove"},"functionSelector":"7f5a70bd","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":398,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"16035:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":399,"kind":"modifierInvocation","modifierName":{"id":397,"name":"onlyPoolAdmin","nameLocations":["16021:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":123,"src":"16021:13:0"},"nodeType":"ModifierInvocation","src":"16021:22:0"}],"name":"removePoolManager","nameLocation":"15959:17:0","parameters":{"id":396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"_poolId","nameLocation":"15985:7:0","nodeType":"VariableDeclaration","scope":410,"src":"15977:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":392,"name":"uint256","nodeType":"ElementaryTypeName","src":"15977:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":395,"mutability":"mutable","name":"_manager","nameLocation":"16002:8:0","nodeType":"VariableDeclaration","scope":410,"src":"15994:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":394,"name":"address","nodeType":"ElementaryTypeName","src":"15994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15976:35:0"},"returnParameters":{"id":400,"nodeType":"ParameterList","parameters":[],"src":"16044:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":448,"nodeType":"FunctionDefinition","src":"16308:430:0","nodes":[],"body":{"id":447,"nodeType":"Block","src":"16385:353:0","nodes":[],"statements":[{"assignments":[421],"declarations":[{"constant":false,"id":421,"mutability":"mutable","name":"amount","nameLocation":"16514:6:0","nodeType":"VariableDeclaration","scope":447,"src":"16506:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":420,"name":"uint256","nodeType":"ElementaryTypeName","src":"16506:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":440,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":422,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16523:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":423,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"16533:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16523:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":436,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16610:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16602:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":434,"name":"address","nodeType":"ElementaryTypeName","src":"16602:7:0","typeDescriptions":{}}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":431,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16584:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":430,"name":"IERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53571,"src":"16566:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Upgradeable_$53571_$","typeString":"type(contract IERC20Upgradeable)"}},"id":432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16566:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Upgradeable_$53571","typeString":"contract IERC20Upgradeable"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16592:9:0","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":53528,"src":"16566:35:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16566:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"16523:93:0","trueExpression":{"expression":{"arguments":[{"id":427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16550:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16542:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"16542:7:0","typeDescriptions":{}}},"id":428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16542:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16556:7:0","memberName":"balance","nodeType":"MemberAccess","src":"16542:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16506:110:0"},{"expression":{"arguments":[{"id":442,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16704:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":415,"src":"16712:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"16724:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":441,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"16688:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16688:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":446,"nodeType":"ExpressionStatement","src":"16688:43:0"}]},"baseFunctions":[2473],"documentation":{"id":411,"nodeType":"StructuredDocumentation","src":"16116:187:0","text":"@notice Transfer the funds recovered to the recipient\n @dev 'msg.sender' must be Allo owner\n @param _token The token to transfer\n @param _recipient The recipient"},"functionSelector":"24ae6a27","implemented":true,"kind":"function","modifiers":[{"id":418,"kind":"modifierInvocation","modifierName":{"id":417,"name":"onlyOwner","nameLocations":["16375:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"16375:9:0"},"nodeType":"ModifierInvocation","src":"16375:9:0"}],"name":"recoverFunds","nameLocation":"16317:12:0","parameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":413,"mutability":"mutable","name":"_token","nameLocation":"16338:6:0","nodeType":"VariableDeclaration","scope":448,"src":"16330:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":412,"name":"address","nodeType":"ElementaryTypeName","src":"16330:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":415,"mutability":"mutable","name":"_recipient","nameLocation":"16354:10:0","nodeType":"VariableDeclaration","scope":448,"src":"16346:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"16346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16329:36:0"},"returnParameters":{"id":419,"nodeType":"ParameterList","parameters":[],"src":"16385:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":474,"nodeType":"FunctionDefinition","src":"17298:276:0","nodes":[],"body":{"id":473,"nodeType":"Block","src":"17410:164:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":468,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"17549:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17556:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17560:6:0","memberName":"sender","nodeType":"MemberAccess","src":"17556:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":460,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"17489:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":462,"indexExpression":{"id":461,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"17495:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17489:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17489:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17513:17:0","memberName":"registerRecipient","nodeType":"MemberAccess","referencedDeclaration":2949,"src":"17489:41:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17538:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17542:5:0","memberName":"value","nodeType":"MemberAccess","src":"17538:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"17489:59:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$value","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17489:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":459,"id":472,"nodeType":"Return","src":"17482:85:0"}]},"baseFunctions":[2483],"documentation":{"id":449,"nodeType":"StructuredDocumentation","src":"16877:416:0","text":"@notice Passes _data through to the strategy for that pool.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of registerRecipient().\n @param _poolId ID of the pool\n @param _data Encoded data unique to a strategy that registerRecipient() requires\n @return recipientId The recipient ID that has been registered"},"functionSelector":"075c0e9c","implemented":true,"kind":"function","modifiers":[{"id":456,"kind":"modifierInvocation","modifierName":{"id":455,"name":"nonReentrant","nameLocations":["17379:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"17379:12:0"},"nodeType":"ModifierInvocation","src":"17379:12:0"}],"name":"registerRecipient","nameLocation":"17307:17:0","parameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":451,"mutability":"mutable","name":"_poolId","nameLocation":"17333:7:0","nodeType":"VariableDeclaration","scope":474,"src":"17325:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":450,"name":"uint256","nodeType":"ElementaryTypeName","src":"17325:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":453,"mutability":"mutable","name":"_data","nameLocation":"17355:5:0","nodeType":"VariableDeclaration","scope":474,"src":"17342:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":452,"name":"bytes","nodeType":"ElementaryTypeName","src":"17342:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17324:37:0"},"returnParameters":{"id":459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":474,"src":"17401:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"17401:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17400:9:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":543,"nodeType":"FunctionDefinition","src":"18212:747:0","nodes":[],"body":{"id":542,"nodeType":"Block","src":"18383:576:0","nodes":[],"statements":[{"assignments":[490],"declarations":[{"constant":false,"id":490,"mutability":"mutable","name":"poolIdLength","nameLocation":"18401:12:0","nodeType":"VariableDeclaration","scope":542,"src":"18393:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":489,"name":"uint256","nodeType":"ElementaryTypeName","src":"18393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":493,"initialValue":{"expression":{"id":491,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"18416:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18425:6:0","memberName":"length","nodeType":"MemberAccess","src":"18416:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18393:38:0"},{"expression":{"id":500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":494,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18441:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":498,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18470:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18456:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":495,"name":"address","nodeType":"ElementaryTypeName","src":"18460:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":496,"nodeType":"ArrayTypeName","src":"18460:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18456:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18441:42:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":501,"nodeType":"ExpressionStatement","src":"18441:42:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":502,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18498:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":503,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18514:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18520:6:0","memberName":"length","nodeType":"MemberAccess","src":"18514:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18498:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":509,"nodeType":"IfStatement","src":"18494:51:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":506,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"18535:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18535:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":508,"nodeType":"RevertStatement","src":"18528:17:0"}},{"body":{"id":538,"nodeType":"Block","src":"18693:169:0","statements":[{"expression":{"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":516,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18707:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":518,"indexExpression":{"id":517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18720:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18707:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":526,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18771:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":528,"indexExpression":{"id":527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18777:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18771:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18781:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18785:6:0","memberName":"sender","nodeType":"MemberAccess","src":"18781:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":519,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"18725:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":523,"indexExpression":{"baseExpression":{"id":520,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"18731:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":522,"indexExpression":{"id":521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18740:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18731:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18725:18:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18744:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"18725:27:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18753:17:0","memberName":"registerRecipient","nodeType":"MemberAccess","referencedDeclaration":2949,"src":"18725:45:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18725:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18707:85:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":533,"nodeType":"ExpressionStatement","src":"18707:85:0"},{"id":537,"nodeType":"UncheckedBlock","src":"18806:46:0","statements":[{"expression":{"id":535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"18834:3:0","subExpression":{"id":534,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18836:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":536,"nodeType":"ExpressionStatement","src":"18834:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18674:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":514,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18678:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18674:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":539,"initializationExpression":{"assignments":[511],"declarations":[{"constant":false,"id":511,"mutability":"mutable","name":"i","nameLocation":"18671:1:0","nodeType":"VariableDeclaration","scope":539,"src":"18663:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":510,"name":"uint256","nodeType":"ElementaryTypeName","src":"18663:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":512,"nodeType":"VariableDeclarationStatement","src":"18663:9:0"},"nodeType":"ForStatement","src":"18658:204:0"},{"expression":{"id":540,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18940:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":488,"id":541,"nodeType":"Return","src":"18933:19:0"}]},"baseFunctions":[2496],"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"17580:627:0","text":"@notice Register multiple recipients to multiple pools.\n @dev Returns the 'recipientIds' from the strategy that have been registered from calling this function.\n Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match\n '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\n @param _poolIds ID's of the pools\n @param _data An array of encoded data unique to a strategy that registerRecipient() requires.\n @return recipientIds The recipient IDs that have been registered"},"functionSelector":"1a20bd88","implemented":true,"kind":"function","modifiers":[{"id":484,"kind":"modifierInvocation","modifierName":{"id":483,"name":"nonReentrant","nameLocations":["18318:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"18318:12:0"},"nodeType":"ModifierInvocation","src":"18318:12:0"}],"name":"batchRegisterRecipient","nameLocation":"18221:22:0","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":478,"mutability":"mutable","name":"_poolIds","nameLocation":"18261:8:0","nodeType":"VariableDeclaration","scope":543,"src":"18244:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":476,"name":"uint256","nodeType":"ElementaryTypeName","src":"18244:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":477,"nodeType":"ArrayTypeName","src":"18244:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":481,"mutability":"mutable","name":"_data","nameLocation":"18286:5:0","nodeType":"VariableDeclaration","scope":543,"src":"18271:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":479,"name":"bytes","nodeType":"ElementaryTypeName","src":"18271:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":480,"nodeType":"ArrayTypeName","src":"18271:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"18243:49:0"},"returnParameters":{"id":488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":487,"mutability":"mutable","name":"recipientIds","nameLocation":"18365:12:0","nodeType":"VariableDeclaration","scope":543,"src":"18348:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"18348:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":486,"nodeType":"ArrayTypeName","src":"18348:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18347:31:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":588,"nodeType":"FunctionDefinition","src":"19156:439:0","nodes":[],"body":{"id":587,"nodeType":"Block","src":"19238:357:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":553,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19318:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19329:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19318:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":559,"nodeType":"IfStatement","src":"19314:43:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":556,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"19339:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19339:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":558,"nodeType":"RevertStatement","src":"19332:25:0"}},{"assignments":[562],"declarations":[{"constant":false,"id":562,"mutability":"mutable","name":"pool","nameLocation":"19380:4:0","nodeType":"VariableDeclaration","scope":587,"src":"19368:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":561,"nodeType":"UserDefinedTypeName","pathNode":{"id":560,"name":"Pool","nameLocations":["19368:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"19368:4:0"},"referencedDeclaration":2319,"src":"19368:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":566,"initialValue":{"baseExpression":{"id":563,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"19387:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":565,"indexExpression":{"id":564,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"19393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19387:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19368:33:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":567,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"19415:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19420:5:0","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"19415:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":569,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"19429:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19415:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":571,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19439:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":572,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19450:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19454:5:0","memberName":"value","nodeType":"MemberAccess","src":"19450:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19439:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19415:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":579,"nodeType":"IfStatement","src":"19411:75:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":576,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"19468:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19468:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":578,"nodeType":"RevertStatement","src":"19461:25:0"}},{"expression":{"arguments":[{"id":581,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19556:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":582,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"19565:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":583,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"19574:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19579:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"19574:13:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":580,"name":"_fundPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"19546:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IStrategy_$2969_$returns$__$","typeString":"function (uint256,uint256,contract IStrategy)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19546:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"ExpressionStatement","src":"19546:42:0"}]},"baseFunctions":[2504],"documentation":{"id":544,"nodeType":"StructuredDocumentation","src":"18965:186:0","text":"@notice Fund a pool.\n @dev Anyone can fund a pool and call this function.\n @param _poolId ID of the pool\n @param _amount The amount to be deposited into the pool"},"functionSelector":"5acd6fac","implemented":true,"kind":"function","modifiers":[{"id":551,"kind":"modifierInvocation","modifierName":{"id":550,"name":"nonReentrant","nameLocations":["19225:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"19225:12:0"},"nodeType":"ModifierInvocation","src":"19225:12:0"}],"name":"fundPool","nameLocation":"19165:8:0","parameters":{"id":549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":546,"mutability":"mutable","name":"_poolId","nameLocation":"19182:7:0","nodeType":"VariableDeclaration","scope":588,"src":"19174:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":545,"name":"uint256","nodeType":"ElementaryTypeName","src":"19174:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":548,"mutability":"mutable","name":"_amount","nameLocation":"19199:7:0","nodeType":"VariableDeclaration","scope":588,"src":"19191:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":547,"name":"uint256","nodeType":"ElementaryTypeName","src":"19191:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19173:34:0"},"returnParameters":{"id":552,"nodeType":"ParameterList","parameters":[],"src":"19238:0:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":604,"nodeType":"FunctionDefinition","src":"19921:127:0","nodes":[],"body":{"id":603,"nodeType":"Block","src":"20006:42:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":599,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"20026:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":600,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"20035:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":598,"name":"_allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"20016:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20016:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":602,"nodeType":"ExpressionStatement","src":"20016:25:0"}]},"baseFunctions":[2512],"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"19601:315:0","text":"@notice Allocate to a recipient or multiple recipients.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of allocate().\n @param _poolId ID of the pool\n @param _data Encoded data unique to the strategy for that pool"},"functionSelector":"2ec38188","implemented":true,"kind":"function","modifiers":[{"id":596,"kind":"modifierInvocation","modifierName":{"id":595,"name":"nonReentrant","nameLocations":["19993:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"19993:12:0"},"nodeType":"ModifierInvocation","src":"19993:12:0"}],"name":"allocate","nameLocation":"19930:8:0","parameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"_poolId","nameLocation":"19947:7:0","nodeType":"VariableDeclaration","scope":604,"src":"19939:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":590,"name":"uint256","nodeType":"ElementaryTypeName","src":"19939:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"_data","nameLocation":"19969:5:0","nodeType":"VariableDeclaration","scope":604,"src":"19956:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":592,"name":"bytes","nodeType":"ElementaryTypeName","src":"19956:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19938:37:0"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[],"src":"20006:0:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":651,"nodeType":"FunctionDefinition","src":"20511:559:0","nodes":[],"body":{"id":650,"nodeType":"Block","src":"20608:462:0","nodes":[],"statements":[{"assignments":[617],"declarations":[{"constant":false,"id":617,"mutability":"mutable","name":"numPools","nameLocation":"20626:8:0","nodeType":"VariableDeclaration","scope":650,"src":"20618:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":616,"name":"uint256","nodeType":"ElementaryTypeName","src":"20618:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":620,"initialValue":{"expression":{"id":618,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"20637:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20646:6:0","memberName":"length","nodeType":"MemberAccess","src":"20637:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20618:34:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":621,"name":"numPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"20772:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":622,"name":"_datas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"20784:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20791:6:0","memberName":"length","nodeType":"MemberAccess","src":"20784:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20772:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":628,"nodeType":"IfStatement","src":"20768:48:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":625,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"20806:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20806:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":627,"nodeType":"RevertStatement","src":"20799:17:0"}},{"body":{"id":648,"nodeType":"Block","src":"20947:117:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":636,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"20971:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":638,"indexExpression":{"id":637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20980:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20971:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":639,"name":"_datas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"20984:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":641,"indexExpression":{"id":640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20991:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20984:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":635,"name":"_allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"20961:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20961:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":643,"nodeType":"ExpressionStatement","src":"20961:33:0"},{"id":647,"nodeType":"UncheckedBlock","src":"21008:46:0","statements":[{"expression":{"id":645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"21036:3:0","subExpression":{"id":644,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"21038:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":646,"nodeType":"ExpressionStatement","src":"21036:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20932:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":633,"name":"numPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"20936:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20932:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":649,"initializationExpression":{"assignments":[630],"declarations":[{"constant":false,"id":630,"mutability":"mutable","name":"i","nameLocation":"20929:1:0","nodeType":"VariableDeclaration","scope":649,"src":"20921:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":629,"name":"uint256","nodeType":"ElementaryTypeName","src":"20921:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":631,"nodeType":"VariableDeclarationStatement","src":"20921:9:0"},"nodeType":"ForStatement","src":"20916:148:0"}]},"baseFunctions":[2522],"documentation":{"id":605,"nodeType":"StructuredDocumentation","src":"20054:452:0","text":"@notice Allocate to multiple pools\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of allocate(). Please note that this is not a 'payable' function, so if you\n want to send funds to the strategy, you must send the funds using 'fundPool()'.\n @param _poolIds IDs of the pools\n @param _datas encoded data unique to the strategy for that pool"},"functionSelector":"c6dff1cf","implemented":true,"kind":"function","modifiers":[{"id":614,"kind":"modifierInvocation","modifierName":{"id":613,"name":"nonReentrant","nameLocations":["20595:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"20595:12:0"},"nodeType":"ModifierInvocation","src":"20595:12:0"}],"name":"batchAllocate","nameLocation":"20520:13:0","parameters":{"id":612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":608,"mutability":"mutable","name":"_poolIds","nameLocation":"20553:8:0","nodeType":"VariableDeclaration","scope":651,"src":"20534:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":606,"name":"uint256","nodeType":"ElementaryTypeName","src":"20534:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":607,"nodeType":"ArrayTypeName","src":"20534:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"_datas","nameLocation":"20578:6:0","nodeType":"VariableDeclaration","scope":651,"src":"20563:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":609,"name":"bytes","nodeType":"ElementaryTypeName","src":"20563:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":610,"nodeType":"ArrayTypeName","src":"20563:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"20533:52:0"},"returnParameters":{"id":615,"nodeType":"ParameterList","parameters":[],"src":"20608:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":676,"nodeType":"FunctionDefinition","src":"21468:196:0","nodes":[],"body":{"id":675,"nodeType":"Block","src":"21579:85:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":669,"name":"_recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"21624:13:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":670,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"21639:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21646:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21650:6:0","memberName":"sender","nodeType":"MemberAccess","src":"21646:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":664,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"21589:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":666,"indexExpression":{"id":665,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"21595:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21589:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21604:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"21589:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21613:10:0","memberName":"distribute","nodeType":"MemberAccess","referencedDeclaration":2968,"src":"21589:34:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,bytes memory,address) external"}},"id":673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21589:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":674,"nodeType":"ExpressionStatement","src":"21589:68:0"}]},"baseFunctions":[2533],"documentation":{"id":652,"nodeType":"StructuredDocumentation","src":"21076:387:0","text":"@notice Distribute to a recipient or multiple recipients.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of 'strategy.distribute()'.\n @param _poolId ID of the pool\n @param _recipientIds Ids of the recipients of the distribution\n @param _data Encoded data unique to the strategy"},"functionSelector":"3a5fbd92","implemented":true,"kind":"function","modifiers":[{"id":662,"kind":"modifierInvocation","modifierName":{"id":661,"name":"nonReentrant","nameLocations":["21566:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53453,"src":"21566:12:0"},"nodeType":"ModifierInvocation","src":"21566:12:0"}],"name":"distribute","nameLocation":"21477:10:0","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"_poolId","nameLocation":"21496:7:0","nodeType":"VariableDeclaration","scope":676,"src":"21488:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21488:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":657,"mutability":"mutable","name":"_recipientIds","nameLocation":"21522:13:0","nodeType":"VariableDeclaration","scope":676,"src":"21505:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":655,"name":"address","nodeType":"ElementaryTypeName","src":"21505:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":656,"nodeType":"ArrayTypeName","src":"21505:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":659,"mutability":"mutable","name":"_data","nameLocation":"21550:5:0","nodeType":"VariableDeclaration","scope":676,"src":"21537:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":658,"name":"bytes","nodeType":"ElementaryTypeName","src":"21537:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21487:69:0"},"returnParameters":{"id":663,"nodeType":"ParameterList","parameters":[],"src":"21579:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":693,"nodeType":"FunctionDefinition","src":"21910:142:0","nodes":[],"body":{"id":692,"nodeType":"Block","src":"21972:80:0","nodes":[],"statements":[{"condition":{"id":687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21986:36:0","subExpression":{"arguments":[{"id":683,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"22002:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22011:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22015:6:0","memberName":"sender","nodeType":"MemberAccess","src":"22011:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":682,"name":"_isPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"21987:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21987:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":691,"nodeType":"IfStatement","src":"21982:63:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":688,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"22031:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22031:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":690,"nodeType":"RevertStatement","src":"22024:21:0"}}]},"documentation":{"id":677,"nodeType":"StructuredDocumentation","src":"21806:99:0","text":"@notice Internal function to check is caller is pool manager\n @param _poolId The pool id"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyPoolManager","nameLocation":"21919:21:0","parameters":{"id":680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":679,"mutability":"mutable","name":"_poolId","nameLocation":"21949:7:0","nodeType":"VariableDeclaration","scope":693,"src":"21941:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":678,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21940:17:0"},"returnParameters":{"id":681,"nodeType":"ParameterList","parameters":[],"src":"21972:0:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":710,"nodeType":"FunctionDefinition","src":"22160:138:0","nodes":[],"body":{"id":709,"nodeType":"Block","src":"22220:78:0","nodes":[],"statements":[{"condition":{"id":704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22234:34:0","subExpression":{"arguments":[{"id":700,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"22248:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22257:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:6:0","memberName":"sender","nodeType":"MemberAccess","src":"22257:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":699,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"22235:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22235:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":708,"nodeType":"IfStatement","src":"22230:61:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":705,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"22277:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22277:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":707,"nodeType":"RevertStatement","src":"22270:21:0"}}]},"documentation":{"id":694,"nodeType":"StructuredDocumentation","src":"22058:97:0","text":"@notice Internal function to check is caller is pool admin\n @param _poolId The pool id"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyPoolAdmin","nameLocation":"22169:19:0","parameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":696,"mutability":"mutable","name":"_poolId","nameLocation":"22197:7:0","nodeType":"VariableDeclaration","scope":710,"src":"22189:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":695,"name":"uint256","nodeType":"ElementaryTypeName","src":"22189:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22188:17:0"},"returnParameters":{"id":698,"nodeType":"ParameterList","parameters":[],"src":"22220:0:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":925,"nodeType":"FunctionDefinition","src":"23131:2681:0","nodes":[],"body":{"id":924,"nodeType":"Block","src":"23409:2403:0","nodes":[],"statements":[{"condition":{"id":739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23423:58:0","subExpression":{"arguments":[{"id":735,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"23458:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23470:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23474:6:0","memberName":"sender","nodeType":"MemberAccess","src":"23470:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":733,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"23424:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:24:0","memberName":"isOwnerOrMemberOfProfile","nodeType":"MemberAccess","referencedDeclaration":2704,"src":"23424:33:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23424:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":743,"nodeType":"IfStatement","src":"23419:85:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":740,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"23490:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23490:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":742,"nodeType":"RevertStatement","src":"23483:21:0"}},{"expression":{"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":744,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23515:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23524:12:0","subExpression":{"id":745,"name":"_poolIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"23526:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23515:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":748,"nodeType":"ExpressionStatement","src":"23515:21:0"},{"assignments":[750],"declarations":[{"constant":false,"id":750,"mutability":"mutable","name":"POOL_MANAGER_ROLE","nameLocation":"23683:17:0","nodeType":"VariableDeclaration","scope":924,"src":"23675:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23675:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":755,"initialValue":{"arguments":[{"id":753,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23711:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23703:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23703:7:0","typeDescriptions":{}}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23703:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23675:43:0"},{"assignments":[757],"declarations":[{"constant":false,"id":757,"mutability":"mutable","name":"POOL_ADMIN_ROLE","nameLocation":"23736:15:0","nodeType":"VariableDeclaration","scope":924,"src":"23728:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23728:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":765,"initialValue":{"arguments":[{"arguments":[{"id":761,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23781:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"61646d696e","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23789:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8","typeString":"literal_string \"admin\""},"value":"admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8","typeString":"literal_string \"admin\""}],"expression":{"id":759,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23764:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23768:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"23764:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23764:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":758,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"23754:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23754:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23728:70:0"},{"assignments":[768],"declarations":[{"constant":false,"id":768,"mutability":"mutable","name":"pool","nameLocation":"23857:4:0","nodeType":"VariableDeclaration","scope":924,"src":"23845:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":767,"nodeType":"UserDefinedTypeName","pathNode":{"id":766,"name":"Pool","nameLocations":["23845:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"23845:4:0"},"referencedDeclaration":2319,"src":"23845:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":777,"initialValue":{"arguments":[{"id":770,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"23894:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":771,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"23928:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":772,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"23961:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":773,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"23991:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":774,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24024:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":775,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24066:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":769,"name":"Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"23864:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Pool_$2319_storage_ptr_$","typeString":"type(struct IAllo.Pool storage pointer)"}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23883:9:0","23918:8:0","23951:8:0","23984:5:0","24011:11:0","24055:9:0"],"names":["profileId","strategy","metadata","token","managerRole","adminRole"],"nodeType":"FunctionCall","src":"23864:228:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"23845:247:0"},{"expression":{"id":782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":778,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"24159:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":780,"indexExpression":{"id":779,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24165:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24159:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":781,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"24175:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"src":"24159:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":783,"nodeType":"ExpressionStatement","src":"24159:20:0"},{"expression":{"arguments":[{"id":785,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24250:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":786,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24267:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24271:6:0","memberName":"sender","nodeType":"MemberAccess","src":"24267:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":784,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"24239:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24239:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":789,"nodeType":"ExpressionStatement","src":"24239:39:0"},{"expression":{"arguments":[{"id":791,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24351:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":792,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24370:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":790,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52884,"src":"24337:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24337:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"ExpressionStatement","src":"24337:49:0"},{"expression":{"arguments":[{"id":798,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24562:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":799,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"24570:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":795,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24541:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24551:10:0","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":2939,"src":"24541:20:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24541:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":801,"nodeType":"ExpressionStatement","src":"24541:47:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":802,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24603:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24613:9:0","memberName":"getPoolId","nodeType":"MemberAccess","referencedDeclaration":2876,"src":"24603:19:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24603:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":805,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24628:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24603:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":809,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24646:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24656:7:0","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":2870,"src":"24646:17:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24646:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}],"id":808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24638:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":807,"name":"address","nodeType":"ElementaryTypeName","src":"24638:7:0","typeDescriptions":{}}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24638:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24678:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24670:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":813,"name":"address","nodeType":"ElementaryTypeName","src":"24670:7:0","typeDescriptions":{}}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24670:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24638:45:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24603:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":822,"nodeType":"IfStatement","src":"24599:103:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":819,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"24692:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":821,"nodeType":"RevertStatement","src":"24685:17:0"}},{"assignments":[824],"declarations":[{"constant":false,"id":824,"mutability":"mutable","name":"managersLength","nameLocation":"24758:14:0","nodeType":"VariableDeclaration","scope":924,"src":"24750:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":823,"name":"uint256","nodeType":"ElementaryTypeName","src":"24750:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":827,"initialValue":{"expression":{"id":825,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"24775:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24785:6:0","memberName":"length","nodeType":"MemberAccess","src":"24775:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24750:41:0"},{"body":{"id":859,"nodeType":"Block","src":"24838:229:0","statements":[{"assignments":[835],"declarations":[{"constant":false,"id":835,"mutability":"mutable","name":"manager","nameLocation":"24860:7:0","nodeType":"VariableDeclaration","scope":859,"src":"24852:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":834,"name":"address","nodeType":"ElementaryTypeName","src":"24852:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":839,"initialValue":{"baseExpression":{"id":836,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"24870:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":838,"indexExpression":{"id":837,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"24880:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24870:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24852:30:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":840,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"24900:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24919: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":842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24911:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":841,"name":"address","nodeType":"ElementaryTypeName","src":"24911:7:0","typeDescriptions":{}}},"id":844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24911:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24900:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":849,"nodeType":"IfStatement","src":"24896:48:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":846,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"24930:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24930:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":848,"nodeType":"RevertStatement","src":"24923:21:0"}},{"expression":{"arguments":[{"id":851,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24970:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":852,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"24989:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":850,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"24959:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":854,"nodeType":"ExpressionStatement","src":"24959:38:0"},{"id":858,"nodeType":"UncheckedBlock","src":"25011:46:0","statements":[{"expression":{"id":856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25039:3:0","subExpression":{"id":855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"25041:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":857,"nodeType":"ExpressionStatement","src":"25039:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"24817:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":832,"name":"managersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"24821:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24817:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":860,"initializationExpression":{"assignments":[829],"declarations":[{"constant":false,"id":829,"mutability":"mutable","name":"i","nameLocation":"24814:1:0","nodeType":"VariableDeclaration","scope":860,"src":"24806:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":828,"name":"uint256","nodeType":"ElementaryTypeName","src":"24806:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":830,"nodeType":"VariableDeclarationStatement","src":"24806:9:0"},"nodeType":"ForStatement","src":"24801:266:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":861,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25081:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25091:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25081:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":903,"nodeType":"IfStatement","src":"25077:554:0","trueBody":{"id":902,"nodeType":"Block","src":"25094:537:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":864,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25359:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":865,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25369:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25359:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":867,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25380:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":868,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25390:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25380:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":870,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25401:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25405:5:0","memberName":"value","nodeType":"MemberAccess","src":"25401:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25380:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25379:32:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25359:52:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":875,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25358:54:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":876,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25417:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":877,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25427:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25417:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":879,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25437:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":880,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25448:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25452:5:0","memberName":"value","nodeType":"MemberAccess","src":"25448:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25437:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25417:40:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":884,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25416:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25358:100:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":890,"nodeType":"IfStatement","src":"25354:164:0","trueBody":{"id":889,"nodeType":"Block","src":"25460:58:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":886,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"25485:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25485:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"RevertStatement","src":"25478:25:0"}]}},{"expression":{"arguments":[{"id":892,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25547:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":893,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"25555:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":894,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25565:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":891,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"25531:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25531:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":896,"nodeType":"ExpressionStatement","src":"25531:42:0"},{"eventCall":{"arguments":[{"id":898,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25604:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":899,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25612:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":897,"name":"BaseFeePaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2360,"src":"25592:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25592:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":901,"nodeType":"EmitStatement","src":"25587:33:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":904,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25645:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25655:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25645:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":914,"nodeType":"IfStatement","src":"25641:79:0","trueBody":{"id":913,"nodeType":"Block","src":"25658:62:0","statements":[{"expression":{"arguments":[{"id":908,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25682:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":909,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25691:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":910,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"25699:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":907,"name":"_fundPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"25672:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IStrategy_$2969_$returns$__$","typeString":"function (uint256,uint256,contract IStrategy)"}},"id":911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25672:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":912,"nodeType":"ExpressionStatement","src":"25672:37:0"}]}},{"eventCall":{"arguments":[{"id":916,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25747:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":917,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"25755:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":918,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"25767:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":919,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25778:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":920,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25786:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":921,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"25795:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":915,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"25735:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,bytes32,contract IStrategy,address,uint256,struct Metadata memory)"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25735:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":923,"nodeType":"EmitStatement","src":"25730:75:0"}]},"documentation":{"id":711,"nodeType":"StructuredDocumentation","src":"22304:822:0","text":"@notice Creates a new pool.\n @dev This is an internal function that is called by the 'createPool()' & 'createPoolWithCustomStrategy()' functions\n It is used to create a new pool and is called by both functions. The 'msg.sender' must be a member or owner of\n a profile to create a pool.\n @param _profileId The ID of the profile of for pool creator in the registry\n @param _strategy The address of strategy\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token that the pool is denominated in\n @param _amount The amount of the token to be deposited into the pool\n @param _metadata The 'Metadata' of the pool\n @param _managers The managers of the pool\n @return poolId The ID of the pool"},"implemented":true,"kind":"function","modifiers":[],"name":"_createPool","nameLocation":"23140:11:0","parameters":{"id":729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":713,"mutability":"mutable","name":"_profileId","nameLocation":"23169:10:0","nodeType":"VariableDeclaration","scope":925,"src":"23161:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23161:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"_strategy","nameLocation":"23199:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23189:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":715,"nodeType":"UserDefinedTypeName","pathNode":{"id":714,"name":"IStrategy","nameLocations":["23189:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"23189:9:0"},"referencedDeclaration":2969,"src":"23189:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"},{"constant":false,"id":718,"mutability":"mutable","name":"_initStrategyData","nameLocation":"23231:17:0","nodeType":"VariableDeclaration","scope":925,"src":"23218:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":717,"name":"bytes","nodeType":"ElementaryTypeName","src":"23218:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":720,"mutability":"mutable","name":"_token","nameLocation":"23266:6:0","nodeType":"VariableDeclaration","scope":925,"src":"23258:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":719,"name":"address","nodeType":"ElementaryTypeName","src":"23258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"_amount","nameLocation":"23290:7:0","nodeType":"VariableDeclaration","scope":925,"src":"23282:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":721,"name":"uint256","nodeType":"ElementaryTypeName","src":"23282:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":725,"mutability":"mutable","name":"_metadata","nameLocation":"23323:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23307:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":724,"nodeType":"UserDefinedTypeName","pathNode":{"id":723,"name":"Metadata","nameLocations":["23307:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"23307:8:0"},"referencedDeclaration":3098,"src":"23307:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":728,"mutability":"mutable","name":"_managers","nameLocation":"23359:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23342:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":727,"nodeType":"ArrayTypeName","src":"23342:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"23151:223:0"},"returnParameters":{"id":732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":731,"mutability":"mutable","name":"poolId","nameLocation":"23401:6:0","nodeType":"VariableDeclaration","scope":925,"src":"23393:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":730,"name":"uint256","nodeType":"ElementaryTypeName","src":"23393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23392:16:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":947,"nodeType":"FunctionDefinition","src":"26159:151:0","nodes":[],"body":{"id":946,"nodeType":"Block","src":"26224:86:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":941,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":930,"src":"26285:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":942,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26292:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26296:6:0","memberName":"sender","nodeType":"MemberAccess","src":"26292:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":933,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"26234:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":935,"indexExpression":{"id":934,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"26240:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26234:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26249:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"26234:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26258:8:0","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":2957,"src":"26234:32:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes memory,address) payable external"}},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":938,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26274:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26278:5:0","memberName":"value","nodeType":"MemberAccess","src":"26274:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26234:50:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$__$value","typeString":"function (bytes memory,address) payable external"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26234:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":945,"nodeType":"ExpressionStatement","src":"26234:69:0"}]},"documentation":{"id":926,"nodeType":"StructuredDocumentation","src":"25818:336:0","text":"@notice Allocate to recipient(s).\n @dev Passes '_data' & 'msg.sender' through to the strategy for that pool.\n This is an internal function that is called by the 'allocate()' & 'batchAllocate()' functions.\n @param _poolId ID of the pool\n @param _data Encoded data unique to the strategy for that pool"},"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"26168:9:0","parameters":{"id":931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"_poolId","nameLocation":"26186:7:0","nodeType":"VariableDeclaration","scope":947,"src":"26178:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"26178:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":930,"mutability":"mutable","name":"_data","nameLocation":"26208:5:0","nodeType":"VariableDeclaration","scope":947,"src":"26195:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":929,"name":"bytes","nodeType":"ElementaryTypeName","src":"26195:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26177:37:0"},"returnParameters":{"id":932,"nodeType":"ParameterList","parameters":[],"src":"26224:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1122,"nodeType":"FunctionDefinition","src":"26634:1879:0","nodes":[],"body":{"id":1121,"nodeType":"Block","src":"26717:1796:0","nodes":[],"statements":[{"assignments":[959],"declarations":[{"constant":false,"id":959,"mutability":"mutable","name":"feeAmount","nameLocation":"26735:9:0","nodeType":"VariableDeclaration","scope":1121,"src":"26727:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":958,"name":"uint256","nodeType":"ElementaryTypeName","src":"26727:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":960,"nodeType":"VariableDeclarationStatement","src":"26727:17:0"},{"assignments":[962],"declarations":[{"constant":false,"id":962,"mutability":"mutable","name":"amountAfterFee","nameLocation":"26762:14:0","nodeType":"VariableDeclaration","scope":1121,"src":"26754:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":961,"name":"uint256","nodeType":"ElementaryTypeName","src":"26754:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":964,"initialValue":{"id":963,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"26779:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26754:32:0"},{"assignments":[967],"declarations":[{"constant":false,"id":967,"mutability":"mutable","name":"pool","nameLocation":"26810:4:0","nodeType":"VariableDeclaration","scope":1121,"src":"26797:17:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":966,"nodeType":"UserDefinedTypeName","pathNode":{"id":965,"name":"Pool","nameLocations":["26797:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"26797:4:0"},"referencedDeclaration":2319,"src":"26797:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":971,"initialValue":{"baseExpression":{"id":968,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"26817:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":970,"indexExpression":{"id":969,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"26823:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26817:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26797:34:0"},{"assignments":[973],"declarations":[{"constant":false,"id":973,"mutability":"mutable","name":"_token","nameLocation":"26849:6:0","nodeType":"VariableDeclaration","scope":1121,"src":"26841:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":972,"name":"address","nodeType":"ElementaryTypeName","src":"26841:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":976,"initialValue":{"expression":{"id":974,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"26858:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool storage pointer"}},"id":975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26863:5:0","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"26858:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26841:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":977,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"26883:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26896:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26883:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1050,"nodeType":"IfStatement","src":"26879:808:0","trueBody":{"id":1049,"nodeType":"Block","src":"26899:788:0","statements":[{"expression":{"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":980,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"26913:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":981,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"26926:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":982,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"26936:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26926:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":984,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26925:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":985,"name":"getFeeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"26950:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26950:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26925:44:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26913:56:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":989,"nodeType":"ExpressionStatement","src":"26913:56:0"},{"expression":{"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":990,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"26983:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":991,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27001:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26983:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":993,"nodeType":"ExpressionStatement","src":"26983:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":994,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27029:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":995,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"27041:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27029:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":997,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"27059:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27029:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1002,"nodeType":"IfStatement","src":"27025:59:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":999,"name":"INVALID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"27075:7:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27075:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1001,"nodeType":"RevertStatement","src":"27068:16:0"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1003,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27103:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1004,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"27113:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27103:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1047,"nodeType":"Block","src":"27254:423:0","statements":[{"assignments":[1018],"declarations":[{"constant":false,"id":1018,"mutability":"mutable","name":"balanceBeforeFee","nameLocation":"27280:16:0","nodeType":"VariableDeclaration","scope":1047,"src":"27272:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1017,"name":"uint256","nodeType":"ElementaryTypeName","src":"27272:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1023,"initialValue":{"arguments":[{"id":1020,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27311:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1021,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27319:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1019,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27299:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27299:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27272:56:0"},{"expression":{"arguments":[{"id":1025,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27366:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1027,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27394:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27398:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27394:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1029,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27410:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1030,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27428:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1026,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27374:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27388:4:0","27406:2:0","27420:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27374:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1024,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27346:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27346:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1033,"nodeType":"ExpressionStatement","src":"27346:94:0"},{"assignments":[1035],"declarations":[{"constant":false,"id":1035,"mutability":"mutable","name":"balanceAfterFee","nameLocation":"27466:15:0","nodeType":"VariableDeclaration","scope":1047,"src":"27458:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint256","nodeType":"ElementaryTypeName","src":"27458:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1040,"initialValue":{"arguments":[{"id":1037,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27496:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1038,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27504:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1036,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27484:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27458:55:0"},{"expression":{"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1041,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27616:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1042,"name":"balanceAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1035,"src":"27628:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1043,"name":"balanceBeforeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1018,"src":"27646:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27628:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27616:46:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1046,"nodeType":"ExpressionStatement","src":"27616:46:0"}]},"id":1048,"nodeType":"IfStatement","src":"27099:578:0","trueBody":{"id":1016,"nodeType":"Block","src":"27121:127:0","statements":[{"expression":{"arguments":[{"id":1007,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27159:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1009,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27187:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27191:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27187:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1011,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27203:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1012,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27221:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1008,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27167:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27181:4:0","27199:2:0","27213:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27167:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1006,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27139:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27139:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1015,"nodeType":"ExpressionStatement","src":"27139:94:0"}]}}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1051,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27701:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1052,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"27711:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27701:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1107,"nodeType":"Block","src":"27889:501:0","statements":[{"assignments":[1069],"declarations":[{"constant":false,"id":1069,"mutability":"mutable","name":"balanceBeforeFundingPool","nameLocation":"27911:24:0","nodeType":"VariableDeclaration","scope":1107,"src":"27903:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1068,"name":"uint256","nodeType":"ElementaryTypeName","src":"27903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1077,"initialValue":{"arguments":[{"id":1071,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27950:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1074,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"27966:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27958:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1072,"name":"address","nodeType":"ElementaryTypeName","src":"27958:7:0","typeDescriptions":{}}},"id":1075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27958:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1070,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27938:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27938:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27903:74:0"},{"expression":{"arguments":[{"id":1079,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"28028:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1081,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28056:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28060:6:0","memberName":"sender","nodeType":"MemberAccess","src":"28056:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1085,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28080:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28072:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"28072:7:0","typeDescriptions":{}}},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28072:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1087,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28100:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1080,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"28036:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28050:4:0","28068:2:0","28092:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"28036:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1078,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27991:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27991:139:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1090,"nodeType":"ExpressionStatement","src":"27991:139:0"},{"assignments":[1092],"declarations":[{"constant":false,"id":1092,"mutability":"mutable","name":"balanceAfterFundingPool","nameLocation":"28152:23:0","nodeType":"VariableDeclaration","scope":1107,"src":"28144:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1091,"name":"uint256","nodeType":"ElementaryTypeName","src":"28144:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1100,"initialValue":{"arguments":[{"id":1094,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"28190:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1097,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28206:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28198:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"28198:7:0","typeDescriptions":{}}},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1093,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"28178:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28178:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28144:73:0"},{"expression":{"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1101,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28312:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1102,"name":"balanceAfterFundingPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"28329:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1103,"name":"balanceBeforeFundingPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"28355:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28329:50:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28312:67:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1106,"nodeType":"ExpressionStatement","src":"28312:67:0"}]},"id":1108,"nodeType":"IfStatement","src":"27697:693:0","trueBody":{"id":1067,"nodeType":"Block","src":"27719:164:0","statements":[{"expression":{"arguments":[{"id":1055,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27770:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27798:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27802:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27798:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1061,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"27822:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27814:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1059,"name":"address","nodeType":"ElementaryTypeName","src":"27814:7:0","typeDescriptions":{}}},"id":1062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27814:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1063,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"27842:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1056,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27778:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27792:4:0","27810:2:0","27834:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27778:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1054,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27733:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27733:139:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1066,"nodeType":"ExpressionStatement","src":"27733:139:0"}]}},{"expression":{"arguments":[{"id":1112,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28429:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1109,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28400:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28410:18:0","memberName":"increasePoolAmount","nodeType":"MemberAccess","referencedDeclaration":2908,"src":"28400:28:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28400:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1114,"nodeType":"ExpressionStatement","src":"28400:44:0"},{"eventCall":{"arguments":[{"id":1116,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"28471:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1117,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28480:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1118,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"28496:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1115,"name":"PoolFunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"28460:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28460:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1120,"nodeType":"EmitStatement","src":"28455:51:0"}]},"documentation":{"id":948,"nodeType":"StructuredDocumentation","src":"26316:313:0","text":"@notice Fund a pool.\n @dev Deducts the fee and transfers the amount to the distribution strategy.\n Emits a 'PoolFunded' event.\n @param _amount The amount to transfer\n @param _poolId The 'poolId' for the pool you are funding\n @param _strategy The address of the strategy"},"implemented":true,"kind":"function","modifiers":[],"name":"_fundPool","nameLocation":"26643:9:0","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":950,"mutability":"mutable","name":"_amount","nameLocation":"26661:7:0","nodeType":"VariableDeclaration","scope":1122,"src":"26653:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":949,"name":"uint256","nodeType":"ElementaryTypeName","src":"26653:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":952,"mutability":"mutable","name":"_poolId","nameLocation":"26678:7:0","nodeType":"VariableDeclaration","scope":1122,"src":"26670:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":951,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":955,"mutability":"mutable","name":"_strategy","nameLocation":"26697:9:0","nodeType":"VariableDeclaration","scope":1122,"src":"26687:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":954,"nodeType":"UserDefinedTypeName","pathNode":{"id":953,"name":"IStrategy","nameLocations":["26687:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"26687:9:0"},"referencedDeclaration":2969,"src":"26687:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"}],"src":"26652:55:0"},"returnParameters":{"id":957,"nodeType":"ParameterList","parameters":[],"src":"26717:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1135,"nodeType":"FunctionDefinition","src":"28898:132:0","nodes":[],"body":{"id":1134,"nodeType":"Block","src":"28976:54:0","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1130,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"28993:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1132,"indexExpression":{"id":1131,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1125,"src":"29013:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28993:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1129,"id":1133,"nodeType":"Return","src":"28986:37:0"}]},"documentation":{"id":1123,"nodeType":"StructuredDocumentation","src":"28519:374:0","text":"@notice Checks if the strategy is an approved cloneable strategy.\n @dev Internal function used by createPoolwithCustomStrategy and createPool to\n determine if a strategy is in the cloneable strategy allow list.\n @param _strategy The address of the strategy\n @return This will return 'true' if the strategy is cloneable, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isCloneableStrategy","nameLocation":"28907:20:0","parameters":{"id":1126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"_strategy","nameLocation":"28936:9:0","nodeType":"VariableDeclaration","scope":1135,"src":"28928:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1124,"name":"address","nodeType":"ElementaryTypeName","src":"28928:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28927:19:0"},"returnParameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1135,"src":"28970:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1127,"name":"bool","nodeType":"ElementaryTypeName","src":"28970:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28969:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1154,"nodeType":"FunctionDefinition","src":"29346:153:0","nodes":[],"body":{"id":1153,"nodeType":"Block","src":"29432:67:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1146,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"29457:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1148,"indexExpression":{"id":1147,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1138,"src":"29463:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29457:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29472:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":2318,"src":"29457:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1150,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"29483:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1145,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"29449:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29449:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1144,"id":1152,"nodeType":"Return","src":"29442:50:0"}]},"documentation":{"id":1136,"nodeType":"StructuredDocumentation","src":"29036:305:0","text":"@notice Checks if the address is a pool admin\n @dev Internal function used to determine if an address is a pool admin\n @param _poolId The ID of the pool\n @param _address The address to check\n @return This will return 'true' if the address is a pool admin, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isPoolAdmin","nameLocation":"29355:12:0","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1138,"mutability":"mutable","name":"_poolId","nameLocation":"29376:7:0","nodeType":"VariableDeclaration","scope":1154,"src":"29368:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"29368:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1140,"mutability":"mutable","name":"_address","nameLocation":"29393:8:0","nodeType":"VariableDeclaration","scope":1154,"src":"29385:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1139,"name":"address","nodeType":"ElementaryTypeName","src":"29385:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29367:35:0"},"returnParameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1154,"src":"29426:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1142,"name":"bool","nodeType":"ElementaryTypeName","src":"29426:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29425:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1178,"nodeType":"FunctionDefinition","src":"29821:192:0","nodes":[],"body":{"id":1177,"nodeType":"Block","src":"29909:104:0","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"baseExpression":{"id":1165,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"29934:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1167,"indexExpression":{"id":1166,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"29940:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29934:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29949:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"29934:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1169,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"29962:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1164,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"29926:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29926:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1172,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"29988:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1173,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"29997:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1171,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"29975:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29975:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29926:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1163,"id":1176,"nodeType":"Return","src":"29919:87:0"}]},"documentation":{"id":1155,"nodeType":"StructuredDocumentation","src":"29505:311:0","text":"@notice Checks if the address is a pool manager\n @dev Internal function used to determine if an address is a pool manager\n @param _poolId The ID of the pool\n @param _address The address to check\n @return This will return 'true' if the address is a pool manager, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isPoolManager","nameLocation":"29830:14:0","parameters":{"id":1160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"_poolId","nameLocation":"29853:7:0","nodeType":"VariableDeclaration","scope":1178,"src":"29845:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"29845:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"_address","nameLocation":"29870:8:0","nodeType":"VariableDeclaration","scope":1178,"src":"29862:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"29862:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29844:35:0"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1178,"src":"29903:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1161,"name":"bool","nodeType":"ElementaryTypeName","src":"29903:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29902:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1205,"nodeType":"FunctionDefinition","src":"30226:203:0","nodes":[],"body":{"id":1204,"nodeType":"Block","src":"30279:150:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1184,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30293:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30314: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":1186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30306:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1185,"name":"address","nodeType":"ElementaryTypeName","src":"30306:7:0","typeDescriptions":{}}},"id":1188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30306:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30293:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1193,"nodeType":"IfStatement","src":"30289:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1190,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"30325:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30325:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1192,"nodeType":"RevertStatement","src":"30318:21:0"}},{"expression":{"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1194,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"30350:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1196,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30371:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1195,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"30361:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":1197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30361:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"30350:31:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":1199,"nodeType":"ExpressionStatement","src":"30350:31:0"},{"eventCall":{"arguments":[{"id":1201,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30412:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1200,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"30396:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30396:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1203,"nodeType":"EmitStatement","src":"30391:31:0"}]},"documentation":{"id":1179,"nodeType":"StructuredDocumentation","src":"30019:202:0","text":"@notice Updates the registry address\n @dev Internal function used to update the registry address.\n Emits a RegistryUpdated event.\n @param _registry The new registry address"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateRegistry","nameLocation":"30235:15:0","parameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"_registry","nameLocation":"30259:9:0","nodeType":"VariableDeclaration","scope":1205,"src":"30251:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1180,"name":"address","nodeType":"ElementaryTypeName","src":"30251:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:19:0"},"returnParameters":{"id":1183,"nodeType":"ParameterList","parameters":[],"src":"30279:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1230,"nodeType":"FunctionDefinition","src":"30642:199:0","nodes":[],"body":{"id":1229,"nodeType":"Block","src":"30703:138:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1211,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"30717:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30738: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":1213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30730:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"30730:7:0","typeDescriptions":{}}},"id":1215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30730:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30717:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1220,"nodeType":"IfStatement","src":"30713:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1217,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"30749:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30749:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1219,"nodeType":"RevertStatement","src":"30742:21:0"}},{"expression":{"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1221,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"30774:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1222,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"30785:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"30774:20:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1224,"nodeType":"ExpressionStatement","src":"30774:20:0"},{"eventCall":{"arguments":[{"id":1226,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"30825:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1225,"name":"TreasuryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"30809:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30809:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1228,"nodeType":"EmitStatement","src":"30804:30:0"}]},"documentation":{"id":1206,"nodeType":"StructuredDocumentation","src":"30435:202:0","text":"@notice Updates the treasury address\n @dev Internal function used to update the treasury address.\n Emits a TreasuryUpdated event.\n @param _treasury The new treasury address"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateTreasury","nameLocation":"30651:15:0","parameters":{"id":1209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"_treasury","nameLocation":"30683:9:0","nodeType":"VariableDeclaration","scope":1230,"src":"30667:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1207,"name":"address","nodeType":"ElementaryTypeName","src":"30667:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"30666:27:0"},"returnParameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"30703:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1252,"nodeType":"FunctionDefinition","src":"31041:198:0","nodes":[],"body":{"id":1251,"nodeType":"Block","src":"31098:141:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1236,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"31112:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31653138","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31126:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"31112:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1242,"nodeType":"IfStatement","src":"31108:44:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1239,"name":"INVALID_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3041,"src":"31139:11:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31139:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1241,"nodeType":"RevertStatement","src":"31132:20:0"}},{"expression":{"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1243,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"31163:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1244,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"31176:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31163:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1246,"nodeType":"ExpressionStatement","src":"31163:24:0"},{"eventCall":{"arguments":[{"id":1248,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"31221:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1247,"name":"PercentFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"31203:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31203:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1250,"nodeType":"EmitStatement","src":"31198:34:0"}]},"documentation":{"id":1231,"nodeType":"StructuredDocumentation","src":"30847:189:0","text":"@notice Updates the fee percentage\n @dev Internal function used to update the percentage fee.\n Emits a PercentFeeUpdated event.\n @param _percentFee The new fee"},"implemented":true,"kind":"function","modifiers":[],"name":"_updatePercentFee","nameLocation":"31050:17:0","parameters":{"id":1234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1233,"mutability":"mutable","name":"_percentFee","nameLocation":"31076:11:0","nodeType":"VariableDeclaration","scope":1252,"src":"31068:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1232,"name":"uint256","nodeType":"ElementaryTypeName","src":"31068:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31067:21:0"},"returnParameters":{"id":1235,"nodeType":"ParameterList","parameters":[],"src":"31098:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1267,"nodeType":"FunctionDefinition","src":"31426:125:0","nodes":[],"body":{"id":1266,"nodeType":"Block","src":"31477:74:0","nodes":[],"statements":[{"expression":{"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1258,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"31487:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1259,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"31497:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31487:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1261,"nodeType":"ExpressionStatement","src":"31487:18:0"},{"eventCall":{"arguments":[{"id":1263,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"31536:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1262,"name":"BaseFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"31521:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31521:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1265,"nodeType":"EmitStatement","src":"31516:28:0"}]},"documentation":{"id":1253,"nodeType":"StructuredDocumentation","src":"31245:176:0","text":"@notice Updates the base fee\n @dev Internal function used to update the base fee.\n Emits a BaseFeeUpdated event.\n @param _baseFee The new base fee"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateBaseFee","nameLocation":"31435:14:0","parameters":{"id":1256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1255,"mutability":"mutable","name":"_baseFee","nameLocation":"31458:8:0","nodeType":"VariableDeclaration","scope":1267,"src":"31450:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1254,"name":"uint256","nodeType":"ElementaryTypeName","src":"31450:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31449:18:0"},"returnParameters":{"id":1257,"nodeType":"ParameterList","parameters":[],"src":"31477:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1276,"nodeType":"FunctionDefinition","src":"31788:103:0","nodes":[],"body":{"id":1275,"nodeType":"Block","src":"31863:28:0","nodes":[],"statements":[{"expression":{"hexValue":"31653138","id":1273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31880:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"functionReturnParameters":1272,"id":1274,"nodeType":"Return","src":"31873:11:0"}]},"baseFunctions":[2609],"documentation":{"id":1268,"nodeType":"StructuredDocumentation","src":"31657:126:0","text":"@notice Getter for the fee denominator\n @return FEE_DENOMINATOR The fee denominator is (1e18) which represents 100%"},"functionSelector":"f4e1fc41","implemented":true,"kind":"function","modifiers":[],"name":"getFeeDenominator","nameLocation":"31797:17:0","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[],"src":"31814:2:0"},"returnParameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"mutability":"mutable","name":"FEE_DENOMINATOR","nameLocation":"31846:15:0","nodeType":"VariableDeclaration","scope":1276,"src":"31838:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"31838:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31837:25:0"},"scope":1390,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":1292,"nodeType":"FunctionDefinition","src":"32112:140:0","nodes":[],"body":{"id":1291,"nodeType":"Block","src":"32197:55:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1287,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"32227:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1288,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"32236:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1286,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"32214:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32214:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1285,"id":1290,"nodeType":"Return","src":"32207:38:0"}]},"baseFunctions":[2543],"documentation":{"id":1277,"nodeType":"StructuredDocumentation","src":"31897:210:0","text":"@notice Checks if the address is a pool admin.\n @param _poolId The ID of the pool\n @param _address The address to check\n @return 'true' if the address is a pool admin, otherwise 'false'"},"functionSelector":"ab3febc6","implemented":true,"kind":"function","modifiers":[],"name":"isPoolAdmin","nameLocation":"32121:11:0","parameters":{"id":1282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"mutability":"mutable","name":"_poolId","nameLocation":"32141:7:0","nodeType":"VariableDeclaration","scope":1292,"src":"32133:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1278,"name":"uint256","nodeType":"ElementaryTypeName","src":"32133:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1281,"mutability":"mutable","name":"_address","nameLocation":"32158:8:0","nodeType":"VariableDeclaration","scope":1292,"src":"32150:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1280,"name":"address","nodeType":"ElementaryTypeName","src":"32150:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32132:35:0"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1292,"src":"32191:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1283,"name":"bool","nodeType":"ElementaryTypeName","src":"32191:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32190:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1308,"nodeType":"FunctionDefinition","src":"32476:144:0","nodes":[],"body":{"id":1307,"nodeType":"Block","src":"32563:57:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1303,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"32595:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1304,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"32604:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1302,"name":"_isPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"32580:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32580:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1301,"id":1306,"nodeType":"Return","src":"32573:40:0"}]},"baseFunctions":[2553],"documentation":{"id":1293,"nodeType":"StructuredDocumentation","src":"32258:213:0","text":"@notice Checks if the address is a pool manager\n @param _poolId The ID of the pool\n @param _address The address to check\n @return 'true' if the address is a pool manager, otherwise 'false'"},"functionSelector":"29e40d4b","implemented":true,"kind":"function","modifiers":[],"name":"isPoolManager","nameLocation":"32485:13:0","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"_poolId","nameLocation":"32507:7:0","nodeType":"VariableDeclaration","scope":1308,"src":"32499:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1294,"name":"uint256","nodeType":"ElementaryTypeName","src":"32499:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"_address","nameLocation":"32524:8:0","nodeType":"VariableDeclaration","scope":1308,"src":"32516:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1296,"name":"address","nodeType":"ElementaryTypeName","src":"32516:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32498:35:0"},"returnParameters":{"id":1301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1308,"src":"32557:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1299,"name":"bool","nodeType":"ElementaryTypeName","src":"32557:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32556:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1325,"nodeType":"FunctionDefinition","src":"32753:126:0","nodes":[],"body":{"id":1324,"nodeType":"Block","src":"32823:56:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1318,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"32848:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1320,"indexExpression":{"id":1319,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"32854:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32848:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32863:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"32848:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32840:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"32840:7:0","typeDescriptions":{}}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32840:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1315,"id":1323,"nodeType":"Return","src":"32833:39:0"}]},"baseFunctions":[2569],"documentation":{"id":1309,"nodeType":"StructuredDocumentation","src":"32626:122:0","text":"@notice Getter for the strategy.\n @param _poolId The ID of the pool\n @return The address of the strategy"},"functionSelector":"cfc0cc34","implemented":true,"kind":"function","modifiers":[],"name":"getStrategy","nameLocation":"32762:11:0","parameters":{"id":1312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1311,"mutability":"mutable","name":"_poolId","nameLocation":"32782:7:0","nodeType":"VariableDeclaration","scope":1325,"src":"32774:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1310,"name":"uint256","nodeType":"ElementaryTypeName","src":"32774:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32773:17:0"},"returnParameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1325,"src":"32814:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"32814:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32813:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1334,"nodeType":"FunctionDefinition","src":"32977:91:0","nodes":[],"body":{"id":1333,"nodeType":"Block","src":"33034:34:0","nodes":[],"statements":[{"expression":{"id":1331,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"33051:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1330,"id":1332,"nodeType":"Return","src":"33044:17:0"}]},"baseFunctions":[2575],"documentation":{"id":1326,"nodeType":"StructuredDocumentation","src":"32885:87:0","text":"@notice Getter for fee percentage.\n @return The fee percentage (1e18 = 100%)"},"functionSelector":"4edbaadc","implemented":true,"kind":"function","modifiers":[],"name":"getPercentFee","nameLocation":"32986:13:0","parameters":{"id":1327,"nodeType":"ParameterList","parameters":[],"src":"32999:2:0"},"returnParameters":{"id":1330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1334,"src":"33025:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1328,"name":"uint256","nodeType":"ElementaryTypeName","src":"33025:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33024:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1343,"nodeType":"FunctionDefinition","src":"33140:85:0","nodes":[],"body":{"id":1342,"nodeType":"Block","src":"33194:31:0","nodes":[],"statements":[{"expression":{"id":1340,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"33211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1339,"id":1341,"nodeType":"Return","src":"33204:14:0"}]},"baseFunctions":[2581],"documentation":{"id":1335,"nodeType":"StructuredDocumentation","src":"33074:61:0","text":"@notice Getter for base fee.\n @return The base fee"},"functionSelector":"15e812ad","implemented":true,"kind":"function","modifiers":[],"name":"getBaseFee","nameLocation":"33149:10:0","parameters":{"id":1336,"nodeType":"ParameterList","parameters":[],"src":"33159:2:0"},"returnParameters":{"id":1339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1343,"src":"33185:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1337,"name":"uint256","nodeType":"ElementaryTypeName","src":"33185:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33184:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1352,"nodeType":"FunctionDefinition","src":"33313:95:0","nodes":[],"body":{"id":1351,"nodeType":"Block","src":"33376:32:0","nodes":[],"statements":[{"expression":{"id":1349,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"33393:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":1348,"id":1350,"nodeType":"Return","src":"33386:15:0"}]},"baseFunctions":[2587],"documentation":{"id":1344,"nodeType":"StructuredDocumentation","src":"33231:77:0","text":"@notice Getter for treasury address.\n @return The treasury address"},"functionSelector":"3b19e84a","implemented":true,"kind":"function","modifiers":[],"name":"getTreasury","nameLocation":"33322:11:0","parameters":{"id":1345,"nodeType":"ParameterList","parameters":[],"src":"33333:2:0"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1352,"src":"33359:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1346,"name":"address","nodeType":"ElementaryTypeName","src":"33359:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"33358:17:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1362,"nodeType":"FunctionDefinition","src":"33488:89:0","nodes":[],"body":{"id":1361,"nodeType":"Block","src":"33545:32:0","nodes":[],"statements":[{"expression":{"id":1359,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"33562:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"functionReturnParameters":1358,"id":1360,"nodeType":"Return","src":"33555:15:0"}]},"baseFunctions":[2594],"documentation":{"id":1353,"nodeType":"StructuredDocumentation","src":"33414:69:0","text":"@notice Getter for registry.\n @return The registry address"},"functionSelector":"5ab1bd53","implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"33497:11:0","parameters":{"id":1354,"nodeType":"ParameterList","parameters":[],"src":"33508:2:0"},"returnParameters":{"id":1358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1362,"src":"33534:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":1356,"nodeType":"UserDefinedTypeName","pathNode":{"id":1355,"name":"IRegistry","nameLocations":["33534:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"33534:9:0"},"referencedDeclaration":2802,"src":"33534:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"33533:11:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1375,"nodeType":"FunctionDefinition","src":"33760:132:0","nodes":[],"body":{"id":1374,"nodeType":"Block","src":"33837:55:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1371,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"33875:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1370,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"33854:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33854:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1369,"id":1373,"nodeType":"Return","src":"33847:38:0"}]},"baseFunctions":[2561],"documentation":{"id":1363,"nodeType":"StructuredDocumentation","src":"33583:172:0","text":"@notice Getter for if strategy is cloneable.\n @param _strategy The address of the strategy\n @return 'true' if the strategy is cloneable, otherwise 'false'"},"functionSelector":"ab2ec589","implemented":true,"kind":"function","modifiers":[],"name":"isCloneableStrategy","nameLocation":"33769:19:0","parameters":{"id":1366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1365,"mutability":"mutable","name":"_strategy","nameLocation":"33797:9:0","nodeType":"VariableDeclaration","scope":1375,"src":"33789:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1364,"name":"address","nodeType":"ElementaryTypeName","src":"33789:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33788:19:0"},"returnParameters":{"id":1369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1375,"src":"33831:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1367,"name":"bool","nodeType":"ElementaryTypeName","src":"33831:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33830:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1389,"nodeType":"FunctionDefinition","src":"34013:108:0","nodes":[],"body":{"id":1388,"nodeType":"Block","src":"34083:38:0","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1384,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"34100:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1386,"indexExpression":{"id":1385,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"34106:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34100:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"functionReturnParameters":1383,"id":1387,"nodeType":"Return","src":"34093:21:0"}]},"baseFunctions":[2603],"documentation":{"id":1376,"nodeType":"StructuredDocumentation","src":"33898:110:0","text":"@notice Getter for the 'Pool'.\n @param _poolId The ID of the pool\n @return The 'Pool' struct"},"functionSelector":"068bcd8d","implemented":true,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"34022:7:0","parameters":{"id":1379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1378,"mutability":"mutable","name":"_poolId","nameLocation":"34038:7:0","nodeType":"VariableDeclaration","scope":1389,"src":"34030:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1377,"name":"uint256","nodeType":"ElementaryTypeName","src":"34030:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34029:17:0"},"returnParameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1389,"src":"34070:11:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":1381,"nodeType":"UserDefinedTypeName","pathNode":{"id":1380,"name":"Pool","nameLocations":["34070:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"34070:4:0"},"referencedDeclaration":2319,"src":"34070:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"34069:13:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":16,"name":"IAllo","nameLocations":["5097:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":2610,"src":"5097:5:0"},"id":17,"nodeType":"InheritanceSpecifier","src":"5097:5:0"},{"baseName":{"id":18,"name":"Native","nameLocations":["5108:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"5108:6:0"},"id":19,"nodeType":"InheritanceSpecifier","src":"5108:6:0"},{"baseName":{"id":20,"name":"Transfer","nameLocations":["5120:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3317,"src":"5120:8:0"},"id":21,"nodeType":"InheritanceSpecifier","src":"5120:8:0"},{"baseName":{"id":22,"name":"Initializable","nameLocations":["5134:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":53408,"src":"5134:13:0"},"id":23,"nodeType":"InheritanceSpecifier","src":"5134:13:0"},{"baseName":{"id":24,"name":"Ownable","nameLocations":["5153:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":4095,"src":"5153:7:0"},"id":25,"nodeType":"InheritanceSpecifier","src":"5153:7:0"},{"baseName":{"id":26,"name":"AccessControlUpgradeable","nameLocations":["5166:24:0"],"nodeType":"IdentifierPath","referencedDeclaration":52953,"src":"5166:24:0"},"id":27,"nodeType":"InheritanceSpecifier","src":"5166:24:0"},{"baseName":{"id":28,"name":"ReentrancyGuardUpgradeable","nameLocations":["5196:26:0"],"nodeType":"IdentifierPath","referencedDeclaration":53493,"src":"5196:26:0"},"id":29,"nodeType":"InheritanceSpecifier","src":"5196:26:0"},{"baseName":{"id":30,"name":"Errors","nameLocations":["5228:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"5228:6:0"},"id":31,"nodeType":"InheritanceSpecifier","src":"5228:6:0"}],"canonicalName":"Allo","contractDependencies":[],"contractKind":"contract","documentation":{"id":15,"nodeType":"StructuredDocumentation","src":"4725:351:0","text":"@title Allo\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice This contract is used to create & manage pools as well as manage the protocol.\n @dev The contract must be initialized with the 'initialize()' function."},"fullyImplemented":true,"linearizedBaseContracts":[1390,3089,53493,52953,54226,54238,53026,53952,4095,53408,3317,3106,2610],"name":"Allo","nameLocation":"5085:4:0","scope":1391,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,3929,3932,3935]}],"license":"AGPL-3.0-only"},"id":0} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategy.sol/CVStrategy.json b/pkg/contracts/out/CVStrategy.sol/CVStrategy.json index 1e46b7afd..1582f9acb 100644 --- a/pkg/contracts/out/CVStrategy.sol/CVStrategy.json +++ b/pkg/contracts/out/CVStrategy.sol/CVStrategy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_allo","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"D","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_STAKED_PROPOSALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_minThresholdPoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"calculateThreshold","inputs":[{"name":"_requestedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"canExecuteProposal","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canBeExecuted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deactivatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUnstake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"distribute","inputs":[{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAllo"}],"stateMutability":"view"},{"type":"function","name":"getMaxAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMaxConviction","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMetadata","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getPayouts","inputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IStrategy.PayoutSummary[]","components":[{"name":"recipientAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"getPoolAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPoolId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposal","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"submitter","type":"address","internalType":"address"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"voterStakedPoints","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalStakedAmount","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalVoterStake","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRecipientStatus","inputs":[{"name":"_recipientId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IStrategy.Status"}],"stateMutability":"view"},{"type":"function","name":"getStrategyId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTotalVoterStakePct","inputs":[{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increasePoolAmount","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isPoolActive","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidAllocator","inputs":[{"name":"_allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxRatio","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointConfig","inputs":[],"outputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"proposalCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.ProposalType"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"submitter","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"recipientId","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"registryCommunity","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract RegistryCommunity"}],"stateMutability":"view"},{"type":"function","name":"setDecay","inputs":[{"name":"_decay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxRatio","inputs":[{"name":"_maxRatio","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinThresholdPoints","inputs":[{"name":"minThresholdPoints_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPoolActive","inputs":[{"name":"_active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRegistryCommunity","inputs":[{"name":"_registryCommunity","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWeight","inputs":[{"name":"_weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportProposal","inputs":[{"name":"","type":"tuple[]","internalType":"struct StrategyStruct.ProposalSupport[]","components":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"deltaSupport","type":"int256","internalType":"int256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalEffectiveActivePoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalPointsActivated","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalStaked","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalVoterStakePct","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateProposalConviction","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"voterStakedProposals","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"weight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Allocated","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DecayUpdated","inputs":[{"name":"decay","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"beneficiary","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"recipientAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"InitializedCV","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"tuple","indexed":false,"internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"anonymous":false},{"type":"event","name":"MaxRatioUpdated","inputs":[{"name":"maxRatio","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinThresholdPointsUpdated","inputs":[{"name":"before","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PointsDeactivated","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolActive","inputs":[{"name":"active","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PoolAmountIncreased","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerDecreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensUnStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToDecrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerIncreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Registered","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupportAdded","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalStakedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"convictionLast","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WeightUpdated","inputs":[{"name":"weight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"AmountOverMaxRatio","inputs":[]},{"type":"error","name":"CantIncreaseFixedSystem","inputs":[]},{"type":"error","name":"ConvictionUnderMinimumThreshold","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"MaxPointsReached","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NotEnoughPointsToSupport","inputs":[{"name":"pointsSupport","type":"uint256","internalType":"uint256"},{"name":"pointsBalance","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[]},{"type":"error","name":"OnlyCommunityAllowed","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"PoolAmountNotEnough","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_requestedAmount","type":"uint256","internalType":"uint256"},{"name":"_poolAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PoolIdCannotBeZero","inputs":[]},{"type":"error","name":"PoolIsEmpty","inputs":[]},{"type":"error","name":"ProposalDataIsEmpty","inputs":[]},{"type":"error","name":"ProposalIdCannotBeZero","inputs":[]},{"type":"error","name":"ProposalNotActive","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalNotInList","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalSupportDuplicated","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SupportUnderflow","inputs":[{"name":"_support","type":"uint256","internalType":"uint256"},{"name":"_delta","type":"int256","internalType":"int256"},{"name":"_result","type":"int256","internalType":"int256"}]},{"type":"error","name":"TokenCannotBeZero","inputs":[]},{"type":"error","name":"TokenNotAllowed","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"UserCannotBeZero","inputs":[]},{"type":"error","name":"UserIsInactive","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x60c0604052600060065560006009553480156200001b57600080fd5b5060405162004ab338038062004ab38339810160408190526200003e91620000a6565b604080518082018252600a8152694356537472617465677960b01b6020808301919091526001600160a01b038416608052915183926200008191839101620000d8565b60408051601f19818403018152919052805160209091012060a0525062000128915050565b600060208284031215620000b957600080fd5b81516001600160a01b0381168114620000d157600080fd5b9392505050565b600060208083528351808285015260005b818110156200010757858101830151858201604001528201620000e9565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a0516149506200016360003960006105de0152600081816104720152818161188f015281816119220152611bab01526149506000f3fe60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea26469706673582212205d1aa5a88b5f5546faee787f3e80e787a856de37186a40560d39d113f0308a9464736f6c63430008130033","sourceMap":"2822:37282:109:-:0;;;6387:1;6354:34;;6504:1;6467:38;;7496:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5210:135:11;;;;;;;;;;;-1:-1:-1;;;5210:135:11;;;;;;;;-1:-1:-1;;;;;5268:19:11;;;;5320:17;;7544:5:109;;5320:17:11;;5210:135;;5320:17;;:::i;:::-;;;;-1:-1:-1;;5320:17:11;;;;;;;;;5310:28;;5320:17;5310:28;;;;5297:41;;-1:-1:-1;2822:37282:109;;-1:-1:-1;;2822:37282:109;14:290:123;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:123;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:123:o;309:548::-;421:4;450:2;479;468:9;461:21;511:6;505:13;554:6;549:2;538:9;534:18;527:34;579:1;589:140;603:6;600:1;597:13;589:140;;;698:14;;;694:23;;688:30;664:17;;;683:2;660:26;653:66;618:10;;589:140;;;593:3;778:1;773:2;764:6;753:9;749:22;745:31;738:42;848:2;841;837:7;832:2;824:6;820:15;816:29;805:9;801:45;797:54;789:62;;;;309:548;;;;:::o;:::-;2822:37282:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea26469706673582212205d1aa5a88b5f5546faee787f3e80e787a856de37186a40560d39d113f0308a9464736f6c63430008130033","sourceMap":"2822:37282:109:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7028:60;;;;;;;;;;-1:-1:-1;7028:60:109;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9003:202;;;;;;;;;;-1:-1:-1;9003:202:109;;;;;:::i;:::-;;:::i;:::-;;;2891:14:123;;2884:22;2866:41;;2854:2;2839:18;9003:202:109;2726:187:123;39640:219:109;;;;;;;;;;-1:-1:-1;39640:219:109;;;;;:::i;:::-;;:::i;10705:325:11:-;;;;;;;;;;-1:-1:-1;10705:325:11;;;;;:::i;:::-;;:::i;17263:99:109:-;;;;;;;;;;-1:-1:-1;17334:11:109;:21;17263:99;;;7277:25:123;;;7265:2;7250:18;17263:99:109;7131:177:123;6354:34:109;;;;;;;;;;;;;;;;5806:36;;;;;;;;;;;;5834:8;5806:36;;39330:155;;;;;;;;;;-1:-1:-1;39330:155:109;;;;;:::i;:::-;;:::i;6785:86:11:-;;;;;;;;;;-1:-1:-1;6860:4:11;6785:86;;;-1:-1:-1;;;;;7491:55:123;;;7473:74;;7461:2;7446:18;6785:86:11;7313:240:123;38531:520:109;;;;;;;;;;-1:-1:-1;38531:520:109;;;;;:::i;:::-;;:::i;12595:81::-;;;;;;;;;;;;;:::i;9429:344:11:-;;;;;;:::i;:::-;;:::i;39865:237:109:-;;;;;;;;;;-1:-1:-1;39865:237:109;;;;;:::i;:::-;;:::i;6784:45::-;;;;;;;;;;-1:-1:-1;6784:45:109;;;;;;;;;;;;;;;;;;:::i;14137:681::-;;;;;;;;;;-1:-1:-1;14137:681:109;;;;;:::i;:::-;;:::i;32689:1145::-;;;;;;;;;;-1:-1:-1;32689:1145:109;;;;;:::i;:::-;;:::i;6678:47::-;;;;;;;;;;-1:-1:-1;6678:47:109;;;;;;;;;;;;;;;:::i;6953:92:11:-;;;;;;;;;;-1:-1:-1;7032:6:11;;6953:92;;6095:49:109;;;;;;;;;;;;6142:2;6095:49;;7135:100:11;;;;;;;;;;-1:-1:-1;7218:10:11;7135:100;;7326:108;;;;;;;;;;-1:-1:-1;7417:10:11;;7326:108;;12395:145;;;;;;;;;;-1:-1:-1;12395:145:11;;;;;:::i;:::-;;:::i;6272:20:109:-;;;;;;;;;;;;;;;;34415:1482;;;;;;;;;;-1:-1:-1;34415:1482:109;;;;;:::i;:::-;;:::i;7144:53::-;;;;;;;;;;-1:-1:-1;7144:53:109;;;;;:::i;:::-;;;;;;;;;;;;;;6919:42;;;;;;;;;;-1:-1:-1;6919:42:109;;;;-1:-1:-1;;;;;6919:42:109;;;12682:128;;;;;;;;;;-1:-1:-1;12682:128:109;;;;;:::i;:::-;;:::i;39187:137::-;;;;;;;;;;-1:-1:-1;39187:137:109;;;;;:::i;:::-;;:::i;6298:23::-;;;;;;;;;;;;;;;;13173:958;;;;;;;;;;-1:-1:-1;13173:958:109;;;;;:::i;:::-;;:::i;6467:38::-;;;;;;;;;;;;;;;;12336:253;;;;;;;;;;;;;:::i;6394:26::-;;;;;;;;;;;;;;;;20535:735;;;;;;;;;;-1:-1:-1;20535:735:109;;;;;:::i;:::-;;:::i;7235:57::-;;;;;;;;;;-1:-1:-1;7235:57:109;;;;;:::i;:::-;;:::i;39057:124::-;;;;;;;;;;-1:-1:-1;39057:124:109;;;;;:::i;:::-;;:::i;4412:75:9:-;;;;;;;;;;;;4445:42;4412:75;;6327:21:109;;;;;;;;;;;;;;;;6835:51;;;;;;;;;;-1:-1:-1;6835:51:109;;;;;;25319:198;;;;;;;;;;-1:-1:-1;25319:198:109;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6426:35::-;;;;;;;;;;;;;;;;21909:288;;;;;;;;;;-1:-1:-1;21909:288:109;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22892:86::-;;;;;;;;;;-1:-1:-1;22892:86:109;;;;;:::i;:::-;;:::i;26114:127::-;;;;;;;;;;-1:-1:-1;26114:127:109;;;;;:::i;:::-;-1:-1:-1;;;;;26208:26:109;26182:7;26208:26;;;:18;:26;;;;;;;26114:127;17368:110;;;;;;;;;;-1:-1:-1;17460:11:109;;;;;;;17368:110;;24275:1038;;;;;;;;;;-1:-1:-1;24275:1038:109;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;37102:112::-;;;;;;;;;;-1:-1:-1;37187:20:109;;37102:112;;25900:145;;;;;;;;;;-1:-1:-1;25900:145:109;;;;;:::i;:::-;25977:7;26003:22;;;:9;:22;;;;;:35;;;;25900:145;7566:101:11;;;;;;;;;;-1:-1:-1;7622:4:11;14479:10;;;7566:101;;25718:176:109;;;;;;;;;;-1:-1:-1;25718:176:109;;;;;:::i;:::-;;:::i;17594:226::-;;;;;;;;;;-1:-1:-1;17594:226:109;;;;;:::i;:::-;;:::i;7823:146:11:-;;;;;;;;;;-1:-1:-1;7823:146:11;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7574:1028:109:-;;;;;;;;;;-1:-1:-1;7574:1028:109;;;;;:::i;:::-;;:::i;10092:220:11:-;;;;;;:::i;:::-;;:::i;8816:197::-;;;;;;;;;;-1:-1:-1;8816:197:11;;;;;:::i;:::-;;:::i;39491:143:109:-;;;;;;;;;;-1:-1:-1;39491:143:109;;;;;:::i;:::-;;:::i;7028:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7028:60:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9003:202::-;9088:4;9111:47;;;9126:32;9111:47;;:87;;-1:-1:-1;952:25:37;937:40;;;;9162:36:109;9104:94;9003:202;-1:-1:-1;;9003:202:109:o;39640:219::-;39723:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39745:17:109::1;:57:::0;;-1:-1:-1;;39745:57:109::1;-1:-1:-1::0;;;;;39745:57:109;::::1;::::0;;::::1;::::0;;;39817:35:::1;::::0;7473:74:123;;;39817:35:109::1;::::0;7461:2:123;7446:18;39817:35:109::1;;;;;;;;39640:219:::0;;:::o;10705:325:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10924:42:::2;10936:13;10951:5;10958:7;10924:11;:42::i;:::-;10705:325:::0;;;:::o;39330:155:109:-;39395:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39417:8:109::1;:20:::0;;;39452:26:::1;::::0;7277:25:123;;;39452:26:109::1;::::0;7265:2:123;7250:18;39452:26:109::1;7131:177:123::0;38531:520:109;38601:7;38663:21;;;:9;:21;;;;;38699:19;;:33;;38695:100;;38755:29;;-1:-1:-1;;;38755:29:109;;;;;7277:25:123;;;7250:18;;38755:29:109;;;;;;;;38695:100;38836:36;38809:23;;;;;;:63;;;;;;;;:::i;:::-;;38805:130;;38895:29;;-1:-1:-1;;;38895:29:109;;;;;7277:25:123;;;7250:18;;38895:29:109;7131:177:123;38805:130:109;38945:59;38972:8;38982;:21;;;38945:26;:59::i;:::-;39021:23;;;;38531:520;-1:-1:-1;;38531:520:109:o;12595:81::-;12640:29;12658:10;12640:17;:29::i;:::-;12595:81::o;9429:344:11:-;9584:19;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;9683:34:::2;9702:5;9709:7;9683:18;:34::i;:::-;9669:48:::0;9429:344;-1:-1:-1;;;9429:344:11:o;39865:237:109:-;39950:10;5954:30:11;5976:7;5954:21;:30::i;:::-;40003:19:109::1;::::0;39977:67:::1;::::0;;16754:25:123;;;16810:2;16795:18;;16788:34;;;39977:67:109::1;::::0;16727:18:123;39977:67:109::1;;;;;;;-1:-1:-1::0;40054:19:109::1;:41:::0;39865:237::o;14137:681::-;14221:7;14240:23;:21;:23::i;:::-;14319:24;14376:36;14361:11;;;;;;;:51;;;;;;;;:::i;:::-;;:103;;;-1:-1:-1;14431:33:109;14416:11;;;;;;;:48;;;;;;;;:::i;:::-;;14361:103;14357:298;;;-1:-1:-1;14528:16:109;14357:298;;;14595:49;14618:7;14627:16;14595:22;:49::i;:::-;14576:68;;14357:298;14688:16;14664:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;14719:59:109;;;-1:-1:-1;;;;;17375:55:123;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14719:59:109;;17345:2:123;17330:18;14719:59:109;;;;;;;14795:16;14137:681;-1:-1:-1;;;14137:681:109:o;32689:1145::-;32823:7;32846:9;32858:11;32846:23;;33184:17;33204:27;5834:8;33219:3;33210:5;;:12;;33209:18;;;;:::i;:::-;33229:1;33204:4;:27::i;:::-;33184:47;;33824:3;5977:34;33801:5;;5834:8;33797:9;;;;:::i;:::-;33772:19;33782:9;-1:-1:-1;;;33772:19:109;:::i;:::-;33754:14;5834:8;33754:10;:14;:::i;:::-;:38;;;;:::i;:::-;33753:54;;;;:::i;:::-;33727:21;33739:9;33727;:21;:::i;:::-;33726:82;;;;:::i;:::-;33725:94;;;;:::i;:::-;33724:103;;;32689:1145;-1:-1:-1;;;;;;32689:1145:109:o;12395:145:11:-;12481:4;12504:29;12522:10;12504:17;:29::i;34415:1482:109:-;34490:18;34658:1;34644:10;;:15;34640:66;;34682:13;;;;;;;;;;;;;;34640:66;35146:33;35162:16;35146:15;:33::i;:::-;35142:91;;;35202:20;;-1:-1:-1;;;35202:20:109;;;;;;;;;;;35142:91;35455:10;;35381:13;;35425:26;:16;35444:7;35425:26;:::i;:::-;35424:41;;;;:::i;:::-;5834:8;35398;;35409:7;35398:18;;;;:::i;:::-;35397:24;;;;:::i;:::-;:68;;;;:::i;:::-;35381:84;;35618:2;35576:28;37187:20;;;37102:112;35576:28;35566:5;;35562:9;;5834:8;35562:9;:::i;:::-;5834:8;35549:2;35531:13;35539:5;;35531:13;:::i;:::-;35530:21;;5834:8;35517:3;35507:6;;:13;;35506:19;;;;:::i;:::-;35505:47;;;;:::i;:::-;35504:53;;;;:::i;:::-;35503:69;;;;:::i;:::-;35502:102;;;;:::i;:::-;35488:132;;35475:145;;35836:19;;35823:10;:32;:67;;35871:19;;35823:67;;;-1:-1:-1;35858:10:109;35810:80;-1:-1:-1;34415:1482:109:o;12682:128::-;12744:23;:21;:23::i;:::-;12777:26;12795:7;12777:17;:26::i;:::-;12682:128;:::o;39187:137::-;39246:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39268:5:109::1;:14:::0;;;39297:20:::1;::::0;7277:25:123;;;39297:20:109::1;::::0;7265:2:123;7250:18;39297:20:109::1;7131:177:123::0;13173:958:109;13255:7;13319:23;:21;:23::i;:::-;13352:24;13409:36;13394:11;;;;;;;:51;;;;;;;;:::i;:::-;;13390:441;;13503:14;13480:38;13461:57;;13390:441;;;13554:33;13539:11;;;;;;;:48;;;;;;;;:::i;:::-;;13535:296;;13622:44;13642:7;13651:14;13622:19;:44::i;13535:296::-;13702:36;13687:11;;;;;;;:51;;;;;;;;:::i;:::-;;13683:148;;13773:47;13796:7;13805:14;13773:22;:47::i;:::-;13754:66;;13683:148;13859:17;;:69;;-1:-1:-1;;;13859:69:109;;-1:-1:-1;;;;;18552:15:123;;;13859:69:109;;;18534:34:123;13922:4:109;18584:18:123;;;18577:43;13840:16:109;;13859:17;;:45;;18446:18:123;;13859:69:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13840:88;;13942:11;13938:82;;;13993:16;13969:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;13938:82:109;14034:57;;;-1:-1:-1;;;;;17375:55:123;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14034:57:109;;17345:2:123;17330:18;14034:57:109;;;;;;;-1:-1:-1;14108:16:109;13173:958;-1:-1:-1;;;13173:958:109:o;12336:253::-;12418:17;;:65;;;;;12398:10;12418:65;;;18534:34:123;;;12477:4:109;18584:18:123;;;18577:43;12398:10:109;-1:-1:-1;;;;;12418:17:109;;:42;;18446:18:123;;12418:65:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12517:17:109;;:65;;-1:-1:-1;;;12517:65:109;;-1:-1:-1;;;;;18552:15:123;;;12517:65:109;;;18534:34:123;12576:4:109;18584:18:123;;;18577:43;12517:17:109;;;;-1:-1:-1;12517:42:109;;-1:-1:-1;18446:18:123;;12517:65:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12493:20;;:89;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12336:253:109:o;20535:735::-;20604:18;20677:21;;;:9;:21;;;;;20887;;;;20604:18;;;;20843:66;;20677:21;;20843:33;:66::i;:::-;20783:126;;;;20924:14;20942:1;20924:19;:39;;;;-1:-1:-1;20947:16:109;;20924:39;20920:110;;;20996:8;:23;;;20979:40;;20920:110;21039:17;21059:44;21078:8;:24;;;21059:18;:44::i;:::-;21236:27;;;;;20535:735;-1:-1:-1;;;;;20535:735:109:o;7235:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39057:124::-;39120:7;39167:5;;5834:8;39163:9;;;;:::i;:::-;39148:10;5834:8;39148:6;:10;:::i;:::-;39147:26;;;;:::i;25319:198::-;-1:-1:-1;;;;;;;;;;;;;;;;;25411:40:109;25454:9;:22;25464:11;25454:22;;;;;;;;;;;25411:65;;25493:8;:17;;25486:24;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25319:198;;;:::o;21909:288::-;21995:22;22079:16;;-1:-1:-1;;;22079:16:109;;;;;;;;;;;22892:86;22948:23;22963:7;22948:14;:23::i;24275:1038::-;24377:17;24408:19;24441:22;24477:23;24514:20;24548:44;24606:17;24637:22;24673:17;24704:25;24754:40;24797:9;:22;24807:11;24797:22;;;;;;;;;;;24754:65;;24842:8;:24;;;24870:1;24842:29;:80;;24878:44;24897:8;:24;;;24878:18;:44::i;:::-;24842:80;;;24874:1;24842:80;24830:92;;24953:8;:18;;;;;;;;;;-1:-1:-1;;;;;24953:18:109;24985:8;:20;;;;;;;;;;-1:-1:-1;;;;;24985:20:109;25019:8;:23;;;;;;;;;;-1:-1:-1;;;;;25019:23:109;25056:8;:24;;;25094:8;:21;;;25129:8;:23;;;;;;;;;;;;25166:8;:18;;;25198:8;:23;;;25235:9;25258:8;:26;;:38;25285:10;-1:-1:-1;;;;;25258:38:109;-1:-1:-1;;;;;25258:38:109;;;;;;;;;;;;;24932:374;;;;;;;;;;;;;;;;;;;;;24275:1038;;;;;;;;;;;:::o;25718:176::-;25809:7;26374:22;;;:9;:22;;;;;;;;-1:-1:-1;;;;;26374:48:109;;;;:40;;:48;;;;;;25835:52;26247:182;17594:226;17737:16;;-1:-1:-1;;;17737:16:109;;;;;;;;;;;7823:146:11;7904:6;7929:33;7949:12;7929:19;:33::i;7574:1028:109:-;7650:28;7670:7;7650:19;:28::i;:::-;7688:41;7743:5;7732:52;;;;;;;;;;;;:::i;:::-;8139:20;;7688:96;;-1:-1:-1;;;;;;8139:34:109;8135:94;;8196:22;;-1:-1:-1;;;8196:22:109;;;;;;;;;;;8135:94;8277:20;;8239:17;:59;;-1:-1:-1;;8239:59:109;-1:-1:-1;;;;;8239:59:109;;;;;;;;;8316:8;;;;8308:5;:16;8345:11;;;;8334:8;:22;8375:9;;;;8366:6;:18;8409:15;;;;8394:12;:30;;-1:-1:-1;;8394:30:109;-1:-1:-1;8409:15:109;8394:30;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8448:14:109;;;;8434:11;:28;;-1:-1:-1;;8434:28:109;;8448:14;8434:28;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8486:14:109;;;;8472:28;:11;:28;8532:21;;;;8510:19;:43;8569:26;;;;;;8583:7;;8486:2;;8569:26;:::i;:::-;;;;;;;;7640:962;7574:1028;;:::o;10092:220:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10240:25:::2;10250:5;10257:7;10240:9;:25::i;:::-;10092:220:::0;;:::o;8816:197::-;5660:16;:14;:16::i;:::-;8956:7:::1;8942:10;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8973:33:11::1;::::0;-1:-1:-1;8998:7:11;8973:24:::1;:33::i;39491:143:109:-:0;39552:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39574:6:109::1;:16:::0;;;39605:22:::1;::::0;7277:25:123;;;39605:22:109::1;::::0;7265:2:123;7250:18;39605:22:109::1;7131:177:123::0;13122:142:11;13218:6;;13199:35;;;;;;;;22607:25:123;;;;-1:-1:-1;;;;;22668:55:123;;;22648:18;;;22641:83;13199:4:11;:18;;;;22580::123;;13199:35:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13194:63;;13243:14;;-1:-1:-1;;;13243:14:11;;;;;;;;;;;12814:111;12868:10;-1:-1:-1;;;;;12890:4:11;12868:27;;12864:54;;12904:14;;-1:-1:-1;;;12904:14:11;;;;;;;;;;;13771:105;13832:6;;13842:1;13832:11;13828:41;;13852:17;;;;;;;;;;;;;;18773:1756:109;18968:1;18952:5;:12;:17;18948:76;;18992:21;;;;;;;;;;;;;;18948:76;19034:18;19066:5;19055:28;;;;;;;;;;;;:::i;:::-;19034:49;;19098:10;19112:1;19098:15;19094:77;;19136:24;;;;;;;;;;;;;;19094:77;19180:40;19223:21;;;:9;:21;;;;;19275:35;19259:12;;;;:51;;;;;;;;:::i;:::-;;19255:1208;;19330:19;;:33;;19326:108;;19390:29;;-1:-1:-1;;;19390:29:109;;;;;7277:25:123;;;7250:18;;19390:29:109;7131:177:123;19326:108:109;19479:10;;19452:8;:24;;;:37;19448:152;;;19548:24;;;;19574:10;;19516:69;;;;;;;;22937:25:123;;;22978:18;;;22971:34;;;;23021:18;;;23014:34;22910:18;;19516:69:109;22735:319:123;19448:152:109;19645:36;19618:23;;;;;;:63;;;;;;;;:::i;:::-;;19614:138;;19708:29;;-1:-1:-1;;;19708:29:109;;;;;7277:25:123;;;7250:18;;19708:29:109;7131:177:123;19614:138:109;19766:22;19791:36;19816:10;19791:24;:36::i;:::-;19766:61;;19841:17;19861:44;19880:8;:24;;;19861:18;:44::i;:::-;19841:64;;19941:9;19924:14;:26;:58;;;;;19981:1;19954:8;:24;;;:28;19924:58;19920:137;;;20009:33;;;;;;;;;;;;;;19920:137;20109:6;;20096:20;;;;;20071:22;;-1:-1:-1;;;;;20096:4:109;:12;;;;:20;;;;7277:25:123;;;7265:2;7250:18;;7131:177;20096:20:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20096:20:109;;;;;;;;;;;;:::i;:::-;20071:45;;20145:8;:24;;;20131:10;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;20207:10:109;;;;20219:20;;;;;20241:24;;;20191:75;;20207:10;-1:-1:-1;;;;;20219:20:109;;20191:15;:75::i;:::-;20297:23;;;:64;;-1:-1:-1;;20297:64:109;20323:38;20297:64;;;;;;20405:20;;;20297:64;20427:24;;;20381:71;;;25025:25:123;;;-1:-1:-1;;;;;20405:20:109;;;25081:2:123;25066:18;;25059:83;25158:18;;25151:34;20381:71:109;;25013:2:123;24998:18;20381:71:109;;;;;;;19312:1151;;;19255:1208;18859:1670;;18773:1756;;;:::o;37404:396::-;37523:18;37543:19;37566:56;37600:9;37611:10;37566:33;:56::i;:::-;37522:100;;;;37636:10;37650:1;37636:15;:35;;;;-1:-1:-1;37655:16:109;;37636:35;37632:72;;;37687:7;;37404:396;;:::o;37632:72::-;37713:19;;;:33;37756:24;;;;:37;;;;-1:-1:-1;37404:396:109:o;12816:351::-;12903:17;;:66;;-1:-1:-1;;;12903:66:109;;-1:-1:-1;;;;;18552:15:123;;;12903:66:109;;;18534:34:123;12963:4:109;18584:18:123;;;18577:43;12903:17:109;;;;:42;;18446:18:123;;12903:66:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12879:20;;:90;;;;;;;:::i;:::-;;;;-1:-1:-1;;12979:17:109;;:68;;;;;-1:-1:-1;;;;;18552:15:123;;;12979:68:109;;;18534:34:123;13041:4:109;18584:18:123;;;18577:43;12979:17:109;;;;:44;;18446:18:123;;12979:68:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13102:17;13111:7;13102:8;:17::i;:::-;13134:26;;-1:-1:-1;;;;;7491:55:123;;7473:74;;13134:26:109;;7461:2:123;7446:18;13134:26:109;;;;;;;;12816:351;:::o;10385:1945::-;10477:7;10556:45;10615:5;10604:50;;;;;;;;;;;;:::i;:::-;10769:15;;10556:98;;-1:-1:-1;10769:15:109;:20;10765:78;;10812:20;;;;;;;;;;;;;;10765:78;10935:35;10919:12;;;;:51;;;;;;;;:::i;:::-;;10915:721;;10986:39;11004:8;:20;;;10986:17;:39::i;:::-;11091:23;;;;-1:-1:-1;;;;;11091:37:109;11087:102;;11155:19;;;;;;;;;;;;;;11087:102;11202:17;11222:4;-1:-1:-1;;;;;11222:12:109;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11222:22:109;;11245:6;;11222:30;;;;;;;;;;;;;7277:25:123;;7265:2;7250:18;;7131:177;11222:30:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11222:30:109;;;;;;;;;;;;:::i;:::-;:36;;;11202:56;;11303:9;-1:-1:-1;;;;;11276:36:109;:8;:23;;;-1:-1:-1;;;;;11276:36:109;;11272:234;;11474:17;;;;;;;;;;;;;;11272:234;11523:41;11539:8;:24;;;11523:15;:41::i;:::-;11519:107;;;11591:20;;-1:-1:-1;;;11591:20:109;;;;;;;;;;;11519:107;10972:664;10915:721;11645:18;11668:15;;11666:17;;;;;:::i;:::-;;;;;-1:-1:-1;11693:33:109;11729:21;;;:9;:21;;;;;;;;11761:25;;;11796:11;;;:21;;-1:-1:-1;;;;;11796:21:109;;;-1:-1:-1;;11796:21:109;;;;;;;11843:20;;;;11827:13;;;:36;;;;;;;;;;;;;;11892:23;;;;11873:16;;;:42;;;;;;;;;;;11945:24;;;;-1:-1:-1;11925:17:109;;;:44;;;;12030:16;;;:55;;-1:-1:-1;;12030:55:109;;;;;;12109:12;12095:11;;;:26;-1:-1:-1;12131:16:109;;:20;;;;12210:17;;;;12197:30;;:10;;;:30;;;;;;;11666:17;;-1:-1:-1;11729:21:109;;12197:30;;;;;;;;:::i;:::-;-1:-1:-1;;12259:6:109;;12243:35;;;16754:25:123;;;16810:2;16795:18;;16788:34;;;12243:35:109;;-1:-1:-1;16727:18:123;12243:35:109;;;;;;;-1:-1:-1;12311:10:109;10385:1945;-1:-1:-1;;;;10385:1945:109:o;9759:162::-;9841:17;;-1:-1:-1;;;;;9841:17:109;9819:10;:40;9815:100;;9882:22;;;;;;;;;;;;;;16455:802;16620:17;;:31;;;-1:-1:-1;;;16620:31:109;;;;16553:7;;16590:2;;-1:-1:-1;;;;;16620:17:109;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16606:56:109;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16606:58:109;;;;;;;;-1:-1:-1;;16606:58:109;;;;;;;;;;;;:::i;:::-;;;16602:208;;16763:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;16602:208;;;16714:17;;;-1:-1:-1;16602:208:109;16819:49;;;;;;;;;;;;;;;;;;16851:16;16819:11;:49::i;:::-;16902:17;;:48;;-1:-1:-1;;;16902:48:109;;-1:-1:-1;;;;;7491:55:123;;;16902:48:109;;;7473:74:123;16878:21:109;;16953:16;;16902:17;;;:39;;7446:18:123;;16902:48:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;;;;:::i;:::-;16878:91;;16979:43;;;;;;;;;;;;;;;;;;17008:13;16979:11;:43::i;:::-;17032:22;17057:40;17083:13;17089:7;17083:2;:13;:::i;:::-;17067:29;;:13;:29;:::i;:::-;17057:9;:40::i;:::-;17134:17;;:66;;-1:-1:-1;;;17134:66:109;;-1:-1:-1;;;;;18552:15:123;;;17134:66:109;;;18534:34:123;17194:4:109;18584:18:123;;;18577:43;17032:65:109;;-1:-1:-1;17107:24:109;;17032:65;;17134:17;;:42;;18446:18:123;;17134:66:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:83;;;;:::i;:::-;17107:110;16455:802;-1:-1:-1;;;;;;;16455:802:109:o;36649:447::-;36710:15;-1:-1:-1;;;36745:2:109;:12;36737:53;;;;-1:-1:-1;;;36737:53:109;;30926:2:123;36737:53:109;;;30908:21:123;30965:2;30945:18;;;30938:30;31004;30984:18;;;30977:58;31052:18;;36737:53:109;30724:352:123;36737:53:109;-1:-1:-1;;;;36812:2:109;36836;36875:215;36882:5;;36875:215;;36907:1;36911;36907:5;36916:1;36907:10;36903:177;;36941:10;36946:1;36949;36941:4;:10::i;:::-;36937:14;-1:-1:-1;36975:1:109;36969:7;36875:215;;36903:177;37025:16;37030:7;37039:1;37025:4;:16::i;:::-;37015:26;-1:-1:-1;37059:6:109;37064:1;37059:6;;:::i;:::-;;;36875:215;;;36727:369;;36649:447;;;;:::o;22695:191::-;22774:4;-1:-1:-1;;;;;22840:24:109;;;:39;;22875:4;22840:39;;;22867:5;22833:46;22695:191;-1:-1:-1;;22695:191:109:o;26777:174::-;26851:19;26924:20;5834:8;26924:16;:20;:::i;:::-;26910:10;;26899:8;;:21;;;;:::i;:::-;:45;;;26777:174;-1:-1:-1;;26777:174:109:o;14956:615::-;15049:7;15068:24;15095:14;15068:41;;15119:51;;;;;;;;;;;;;;;;;;15153:16;15119:11;:51::i;:::-;15202:17;;:66;;-1:-1:-1;;;15202:66:109;;-1:-1:-1;;;;;18552:15:123;;;15202:66:109;;;18534:34:123;15262:4:109;18584:18:123;;;18577:43;15180:19:109;;15202:17;;:42;;18446:18:123;;15202:66:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15180:88;;15278:39;;;;;;;;;;;;;;;;;;15305:11;15278;:39::i;:::-;15364:11;:21;15331:30;15345:16;15331:11;:30;:::i;:::-;:54;15327:139;;;15420:11;:21;:35;;15444:11;;15420:35;:::i;:::-;15401:54;;15327:139;15475:55;;;;;;;;;;;;;;;;;;15513:16;15475:11;:55::i;:::-;-1:-1:-1;15548:16:109;14956:615;-1:-1:-1;;;14956:615:109:o;15577:730::-;15713:17;;:48;;-1:-1:-1;;;15713:48:109;;-1:-1:-1;;;;;7491:55:123;;;15713:48:109;;;7473:74:123;15673:7:109;;;;15764:14;;15713:17;;;;:39;;7446:18:123;;15713:48:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;:::i;:::-;15837:17;;:31;;;-1:-1:-1;;;15837:31:109;;;;15692:86;;-1:-1:-1;15807:2:109;;-1:-1:-1;;;;;15837:17:109;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15823:56:109;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15823:58:109;;;;;;;;-1:-1:-1;;15823:58:109;;;;;;;;;;;;:::i;:::-;;;15819:208;;15980:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;15819:208;;;15931:17;;;-1:-1:-1;15819:208:109;16036:22;16061:37;16084:13;16090:7;16084:2;:13;:::i;:::-;16071:26;;:10;:26;:::i;16061:37::-;16132:17;;:66;;-1:-1:-1;;;16132:66:109;;-1:-1:-1;;;;;18552:15:123;;;16132:66:109;;;18534:34:123;16192:4:109;18584:18:123;;;18577:43;16036:62:109;;-1:-1:-1;16108:21:109;;16132:17;;;;:42;;18446:18:123;;16132:66:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16108:90;-1:-1:-1;16209:24:109;16236:30;16108:90;16236:14;:30;:::i;:::-;16209:57;15577:730;-1:-1:-1;;;;;;;;15577:730:109:o;37806:719::-;37959:18;37979:19;38028:12;38014:26;;38080:11;38057:9;:19;;;:34;;38050:42;;;;:::i;:::-;38129:11;38106:9;:19;;;:34;38102:173;;-1:-1:-1;38230:1:109;;-1:-1:-1;38230:1:109;38222:13;;38102:173;38341:177;38388:9;:19;;;38374:11;:33;;;;:::i;:::-;38460:9;:24;;;38498:10;38341:19;:177::i;:::-;38328:190;;37806:719;;;;;;:::o;14116:118:11:-;14173:10;:20;;-1:-1:-1;;14173:20:11;;;;;;;;;;14208:19;;2866:41:123;;;14208:19:11;;2854:2:123;2839:18;14208:19:11;2726:187:123;21560:220:109;21643:6;-1:-1:-1;;;;;21711:26:109;;;:62;;21758:15;21711:62;;;21740:15;21704:69;21560:220;-1:-1:-1;;21560:220:109:o;8269:350:11:-;5660:16;:14;:16::i;:::-;8428:6:::1;::::0;:11;8424:45:::1;;8448:21;;;;;;;;;;;;;;8424:45;8556:7;8567:1;8556:12:::0;8552:34:::1;;8577:9;;;;;;;;;;;;;;8552:34;8596:6;:16:::0;8269:350::o;17966:551:109:-;18050:28;18070:7;18050:19;:28::i;:::-;18165:17;;:69;;-1:-1:-1;;;18165:69:109;;-1:-1:-1;;;;;18552:15:123;;;18165:69:109;;;18534:34:123;18228:4:109;18584:18:123;;;18577:43;18134:28:109;;18165:17;;:45;;18446:18:123;;18165:69:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18134:100;;18249:23;18244:78;;18295:16;;;;;;;;;;;;;;18244:78;18331:42;18387:5;18376:53;;;;;;;;;;;;:::i;:::-;18331:98;;18439:37;18464:7;18473:2;18439:24;:37::i;:::-;18486:24;18498:7;18507:2;18486:11;:24::i;:::-;18040:477;;17966:551;;:::o;22473:127::-;22565:28;;7277:25:123;;;22565:28:109;;7265:2:123;7250:18;22565:28:109;7131:177:123;6721:269:10;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;22984:729:109:-;-1:-1:-1;;;;;23118:29:109;;23086;23118;;;:20;:29;;;;;;;;23086:61;;;;;;;;;;;;;;;;;;;23118:29;;23086:61;;;23118:29;23086:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23162:9;23157:550;23181:12;:19;23177:1;:23;23157:550;;;23221:18;23242:12;23255:1;23242:15;;;;;;;;:::i;:::-;;;;;;;23221:36;;23271:40;23314:9;:21;23324:10;23314:21;;;;;;;;;;;23271:64;;23353:26;23368:10;23353:14;:26::i;:::-;23349:348;;;-1:-1:-1;;;;;23422:35:109;;23399:20;23422:35;;;:26;;;:35;;;;;;;23475:39;;;;23532:21;;;:37;;23422:35;;;;23532:37;;23422:35;;23532:37;:::i;:::-;;;;;;;;23602:12;23587:11;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;23632:50:109;;-1:-1:-1;23659:8:109;23669:12;23632:26;:50::i;:::-;23381:316;23349:348;23207:500;;23202:3;;;;;:::i;:::-;;;;23157:550;;9927:132;-1:-1:-1;;;;;10000:22:109;;9996:56;;10031:21;;;;;;;;;;;;;;5630:121:66;5685:59;5740:2;5701:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5701:42:66;;;;;;;;;;;;;;;;;;;;5685:15;:59::i;6548:139::-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:66;;;;;;;;;;;;;;;;;;;;6612:15;:68::i;6530:1642:40:-;6578:7;6601:1;6606;6601:6;6597:45;;-1:-1:-1;6630:1:40;;6530:1642;-1:-1:-1;6530:1642:40:o;6597:45::-;7321:14;7355:1;7344:7;7349:1;7344:4;:7::i;:::-;:12;;7338:1;:19;;7321:36;;7816:1;7805:6;7801:1;:10;;;;;:::i;:::-;;7792:6;:19;7791:26;;7782:35;;7865:1;7854:6;7850:1;:10;;;;;:::i;:::-;;7841:6;:19;7840:26;;7831:35;;7914:1;7903:6;7899:1;:10;;;;;:::i;:::-;;7890:6;:19;7889:26;;7880:35;;7963:1;7952:6;7948:1;:10;;;;;:::i;:::-;;7939:6;:19;7938:26;;7929:35;;8012:1;8001:6;7997:1;:10;;;;;:::i;:::-;;7988:6;:19;7987:26;;7978:35;;8061:1;8050:6;8046:1;:10;;;;;:::i;:::-;;8037:6;:19;8036:26;;8027:35;;8110:1;8099:6;8095:1;:10;;;;;:::i;:::-;;8086:6;:19;8085:26;;8076:35;;8132:23;8136:6;8148;8144:1;:10;;;;;:::i;:::-;;8132:3;:23::i;36158:269:109:-;36219:15;-1:-1:-1;;;36254:2:109;:13;;36246:66;;;;-1:-1:-1;;;36246:66:109;;33372:2:123;36246:66:109;;;33354:21:123;33411:2;33391:18;;;33384:30;33450:34;33430:18;;;33423:62;33521:10;33501:18;;;33494:38;33549:19;;36246:66:109;33170:404:123;36246:66:109;-1:-1:-1;;;36330:2:109;:12;36322:53;;;;-1:-1:-1;;;36322:53:109;;33781:2:123;36322:53:109;;;33763:21:123;33820:2;33800:18;;;33793:30;33859;33839:18;;;33832:58;33907:18;;36322:53:109;33579:352:123;36322:53:109;36417:3;5977:34;36394:7;36399:2;36394;:7;:::i;:::-;36393:19;;;;:::i;:::-;36392:28;;;36158:269;-1:-1:-1;;;36158:269:109:o;9376:377::-;-1:-1:-1;;;;;9449:21:109;;9445:77;;9493:18;;;;;;;;;;;;;;9445:77;9543:17;;-1:-1:-1;;;;;9543:17:109;9531:100;;9598:22;;-1:-1:-1;;;9598:22:109;;;;;;;;;;;9531:100;9645:17;;:35;;;;;-1:-1:-1;;;;;7491:55:123;;;9645:35:109;;;7473:74:123;9645:17:109;;;;:26;;7446:18:123;;9645:35:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9640:93;;9703:19;;;;;;;;;;;;;;26957:1548;27097:22;27138:9;27133:630;27157:16;:23;27153:1;:27;27133:630;;;27260:16;27277:1;27260:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27294:1;27260:35;27256:187;27420:8;27256:187;27456:18;27477:16;27494:1;27477:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27456:51;;27526:26;27541:10;27526:14;:26::i;:::-;27521:167;;27579:29;;-1:-1:-1;;;27579:29:109;;;;;7277:25:123;;;7250:18;;27579:29:109;7131:177:123;27521:167:109;27720:16;27737:1;27720:19;;;;;;;;:::i;:::-;;;;;;;:32;;;27701:51;;;;;:::i;:::-;;;27187:576;27133:630;27182:3;;;;:::i;:::-;;;;27133:630;;;-1:-1:-1;;;;;;26208:26:109;;27859:29;26208:26;;;:18;:26;;;;;;27891:60;;27935:15;27891:11;:60::i;:::-;28062:17;;:66;;-1:-1:-1;;;28062:66:109;;-1:-1:-1;;;;;18552:15:123;;;28062:66:109;;;18534:34:123;28122:4:109;18584:18:123;;;18577:43;27859:92:109;;-1:-1:-1;28033:26:109;;28062:17;;;;:42;;18446:18:123;;28062:66:109;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28033:95;;28318:18;28294:21;:42;28290:147;;;28359:67;;;;;;;;16754:25:123;;;16795:18;;;16788:34;;;16727:18;;28359:67:109;16580:248:123;28290:147:109;-1:-1:-1;;;;;;28447:27:109;;;;;;;:18;:27;;;;;:51;;;;-1:-1:-1;;26957:1548:109:o;28511:3479::-;28626:29;28670:9;28665:3319;28689:16;:23;28685:1;:27;28665:3319;;;28733:18;28754:16;28771:1;28754:19;;;;;;;;:::i;:::-;;;;;;;:30;;;28733:51;;28857:12;:19;28880:1;28857:24;28853:920;;28916:16;;;28930:1;28916:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28916:16:109;28901:31;;28968:10;28950:12;28963:1;28950:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;28853:920;;;29027:10;29068:9;29063:318;29087:12;:19;29083:1;:23;29063:318;;;29183:10;29164:12;29177:1;29164:15;;;;;;;;:::i;:::-;;;;;;;:29;29160:203;;29266:40;;;;;;;;16754:25:123;;;16795:18;;;16788:34;;;29229:4:109;;-1:-1:-1;16727:18:123;;29266:40:109;16580:248:123;29160:203:109;29108:3;;;;:::i;:::-;;;;29063:318;;;;29403:5;29398:361;;29432:21;29470:12;:19;29492:1;29470:23;;;;:::i;:::-;29456:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29456:38:109;;29432:62;;29521:9;29516:124;29540:12;:19;29536:1;:23;29516:124;;;29602:12;29615:1;29602:15;;;;;;;;:::i;:::-;;;;;;;29592:4;29597:1;29592:7;;;;;;;;:::i;:::-;;;;;;;;;;:25;29561:3;;;;:::i;:::-;;;;29516:124;;;;29689:10;29661:4;29666:12;:19;29661:25;;;;;;;;:::i;:::-;;;;;;;;;;:38;29736:4;-1:-1:-1;29398:361:109;29009:764;28853:920;29786:12;29801:16;29818:1;29801:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:32;;;29848:40;29891:21;;;:9;:21;;;;;;-1:-1:-1;;;;;30045:35:109;;;;:26;;;:35;;;;;;29801:32;;-1:-1:-1;30268:40:109;30045:35;29801:32;30268:11;:40::i;:::-;-1:-1:-1;;;;;30443:35:109;;;;;;:26;;;:35;;;;;:50;;;30245:63;;-1:-1:-1;30443:35:109;30765:246;-1:-1:-1;;;;;30789:29:109;;;;;;:20;:29;;;;;:36;30785:40;;30765:246;;;30890:19;;-1:-1:-1;;;;;30854:29:109;;30890:19;30854:29;;;:20;:29;;;;;:32;;30884:1;;30854:32;;;;;;:::i;:::-;;;;;;;;;:55;30850:147;;30947:4;30933:18;;30973:5;;30850:147;30827:3;;;;:::i;:::-;;;;30765:246;;;;31029:11;31024:106;;-1:-1:-1;;;;;31060:29:109;;;;;;:20;:29;;;;;;;31095:19;;31060:55;;;;;;;;;;;;;;;;;;31024:106;31309:12;31285:20;:36;31281:370;;31356:35;31371:20;31356:12;:35;:::i;:::-;31341:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31434:35:109;;-1:-1:-1;31449:20:109;31434:12;:35;:::i;:::-;31409:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;31281:370:109;;-1:-1:-1;31281:370:109;;31523:35;31546:12;31523:20;:35;:::i;:::-;31508:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31601:35:109;;-1:-1:-1;31624:12:109;31601:20;:35;:::i;:::-;31576:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;31281:370:109;31668:8;:18;;;31690:1;31668:23;31664:310;;31732:12;31711:18;;;:33;31664:310;;;31783:58;31810:8;31820:20;31783:26;:58::i;:::-;31912:21;;;;31935:23;;;;31864:95;;;-1:-1:-1;;;;;34434:55:123;;34416:74;;34521:2;34506:18;;34499:34;;;34549:18;;;34542:34;;;34607:2;34592:18;;34585:34;;;;34650:3;34635:19;;34628:35;31864:95:109;;34403:3:123;34388:19;31864:95:109;;;;;;;31664:310;28719:3265;;;;;;28714:3;;;;;:::i;:::-;;;;28665:3319;;2455:490:44;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;26586:185:109:-;26654:4;26677:22;;;:9;:22;;;;;:33;:37;;;;:87;;-1:-1:-1;;26762:1:109;26718:22;;;:9;:22;;;;;:32;;;-1:-1:-1;;;;;26718:32:109;:46;;;26586:185::o;181:376:66:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;8633:983:40:-;8685:7;;8769:3;8760:12;;;:16;8756:99;;8806:3;8796:13;;;;8827;8756:99;8881:2;8872:11;;;:15;8868:96;;8917:2;8907:12;;;;8937;8868:96;8990:2;8981:11;;;:15;8977:96;;9026:2;9016:12;;;;9046;8977:96;9099:2;9090:11;;;:15;9086:96;;9135:2;9125:12;;;;9155;9086:96;9208:1;9199:10;;;:14;9195:93;;9243:1;9233:11;;;;9262;9195:93;9314:1;9305:10;;;:14;9301:93;;9349:1;9339:11;;;;9368;9301:93;9420:1;9411:10;;;:14;9407:93;;9455:1;9445:11;;;;9474;9407:93;9526:1;9517:10;;;:14;9513:64;;9561:1;9551:11;9603:6;8633:983;-1:-1:-1;;8633:983:40:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:40;;588:104;-1:-1:-1;588:104:40:o;31996:276:109:-;32073:7;;32108:25;32127:6;32115:8;32108:25;:::i;:::-;32092:41;;32157:1;32148:6;:10;32144:90;;;32181:42;;;;;;;;22937:25:123;;;22978:18;;;22971:34;;;23021:18;;;23014:34;;;22910:18;;32181:42:109;22735:319:123;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:123;;14:180;-1:-1:-1;14:180:123:o;199:184::-;-1:-1:-1;;;248:1:123;241:88;348:4;345:1;338:15;372:4;369:1;362:15;388:145;474:1;467:5;464:12;454:46;;480:18;;:::i;:::-;509;;388:145::o;538:250::-;623:1;633:113;647:6;644:1;641:13;633:113;;;723:11;;;717:18;704:11;;;697:39;669:2;662:10;633:113;;;-1:-1:-1;;780:1:123;762:16;;755:27;538:250::o;793:271::-;835:3;873:5;867:12;900:6;895:3;888:19;916:76;985:6;978:4;973:3;969:14;962:4;955:5;951:16;916:76;:::i;:::-;1046:2;1025:15;-1:-1:-1;;1021:29:123;1012:39;;;;1053:4;1008:50;;793:271;-1:-1:-1;;793:271:123:o;1069:252::-;1156:5;1150:12;1145:3;1138:25;1120:3;1209:4;1202:5;1198:16;1192:23;1247:4;1240;1235:3;1231:14;1224:28;1268:47;1309:4;1304:3;1300:14;1286:12;1268:47;:::i;:::-;1261:54;1069:252;-1:-1:-1;;;;1069:252:123:o;1326:1058::-;1740:4;1769:3;1799:6;1788:9;1781:25;1842:6;1837:2;1826:9;1822:18;1815:34;1885:6;1880:2;1869:9;1865:18;1858:34;1928:6;1923:2;1912:9;1908:18;1901:34;-1:-1:-1;;;;;2045:2:123;2037:6;2033:15;2027:3;2016:9;2012:19;2005:44;2098:2;2090:6;2086:15;2080:3;2069:9;2065:19;2058:44;2151:2;2143:6;2139:15;2133:3;2122:9;2118:19;2111:44;;2192:6;2186:3;2175:9;2171:19;2164:35;2208:59;2262:3;2251:9;2247:19;2239:6;2208:59;:::i;:::-;2304:2;2298:3;2287:9;2283:19;2276:31;2324:54;2374:2;2363:9;2359:18;2351:6;2324:54;:::i;:::-;2316:62;1326:1058;-1:-1:-1;;;;;;;;;;;;;1326:1058:123:o;2389:332::-;2447:6;2500:2;2488:9;2479:7;2475:23;2471:32;2468:52;;;2516:1;2513;2506:12;2468:52;2555:9;2542:23;2605:66;2598:5;2594:78;2587:5;2584:89;2574:117;;2687:1;2684;2677:12;2918:154;-1:-1:-1;;;;;2997:5:123;2993:54;2986:5;2983:65;2973:93;;3062:1;3059;3052:12;3077:247;3136:6;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;3244:9;3231:23;3263:31;3288:5;3263:31;:::i;3329:184::-;-1:-1:-1;;;3378:1:123;3371:88;3478:4;3475:1;3468:15;3502:4;3499:1;3492:15;3518:257;3590:4;3584:11;;;3622:17;;3669:18;3654:34;;3690:22;;;3651:62;3648:88;;;3716:18;;:::i;:::-;3752:4;3745:24;3518:257;:::o;3780:255::-;3852:2;3846:9;3894:6;3882:19;;3931:18;3916:34;;3952:22;;;3913:62;3910:88;;;3978:18;;:::i;4040:253::-;4112:2;4106:9;4154:4;4142:17;;4189:18;4174:34;;4210:22;;;4171:62;4168:88;;;4236:18;;:::i;4298:253::-;4370:2;4364:9;4412:4;4400:17;;4447:18;4432:34;;4468:22;;;4429:62;4426:88;;;4494:18;;:::i;4556:275::-;4627:2;4621:9;4692:2;4673:13;;-1:-1:-1;;4669:27:123;4657:40;;4727:18;4712:34;;4748:22;;;4709:62;4706:88;;;4774:18;;:::i;:::-;4810:2;4803:22;4556:275;;-1:-1:-1;4556:275:123:o;4836:183::-;4896:4;4929:18;4921:6;4918:30;4915:56;;;4951:18;;:::i;:::-;-1:-1:-1;4996:1:123;4992:14;5008:4;4988:25;;4836:183::o;5024:737::-;5078:5;5131:3;5124:4;5116:6;5112:17;5108:27;5098:55;;5149:1;5146;5139:12;5098:55;5185:6;5172:20;5211:4;5235:60;5251:43;5291:2;5251:43;:::i;:::-;5235:60;:::i;:::-;5329:15;;;5415:1;5411:10;;;;5399:23;;5395:32;;;5360:12;;;;5439:15;;;5436:35;;;5467:1;5464;5457:12;5436:35;5503:2;5495:6;5491:15;5515:217;5531:6;5526:3;5523:15;5515:217;;;5611:3;5598:17;5628:31;5653:5;5628:31;:::i;:::-;5672:18;;5710:12;;;;5548;;5515:217;;;-1:-1:-1;5750:5:123;5024:737;-1:-1:-1;;;;;;5024:737:123:o;5766:186::-;5814:4;5847:18;5839:6;5836:30;5833:56;;;5869:18;;:::i;:::-;-1:-1:-1;5935:2:123;5914:15;-1:-1:-1;;5910:29:123;5941:4;5906:40;;5766:186::o;5957:462::-;5999:5;6052:3;6045:4;6037:6;6033:17;6029:27;6019:55;;6070:1;6067;6060:12;6019:55;6106:6;6093:20;6137:48;6153:31;6181:2;6153:31;:::i;6137:48::-;6210:2;6201:7;6194:19;6256:3;6249:4;6244:2;6236:6;6232:15;6228:26;6225:35;6222:55;;;6273:1;6270;6263:12;6222:55;6338:2;6331:4;6323:6;6319:17;6312:4;6303:7;6299:18;6286:55;6386:1;6361:16;;;6379:4;6357:27;6350:38;;;;6365:7;5957:462;-1:-1:-1;;;5957:462:123:o;6424:702::-;6535:6;6543;6551;6604:2;6592:9;6583:7;6579:23;6575:32;6572:52;;;6620:1;6617;6610:12;6572:52;6660:9;6647:23;6689:18;6730:2;6722:6;6719:14;6716:34;;;6746:1;6743;6736:12;6716:34;6769:61;6822:7;6813:6;6802:9;6798:22;6769:61;:::i;:::-;6759:71;;6883:2;6872:9;6868:18;6855:32;6839:48;;6912:2;6902:8;6899:16;6896:36;;;6928:1;6925;6918:12;6896:36;;6951:51;6994:7;6983:8;6972:9;6968:24;6951:51;:::i;:::-;6941:61;;;7052:2;7041:9;7037:18;7024:32;7065:31;7090:5;7065:31;:::i;:::-;7115:5;7105:15;;;6424:702;;;;;:::o;7558:455::-;7635:6;7643;7696:2;7684:9;7675:7;7671:23;7667:32;7664:52;;;7712:1;7709;7702:12;7664:52;7752:9;7739:23;7785:18;7777:6;7774:30;7771:50;;;7817:1;7814;7807:12;7771:50;7840:49;7881:7;7872:6;7861:9;7857:22;7840:49;:::i;:::-;7830:59;;;7939:2;7928:9;7924:18;7911:32;7952:31;7977:5;7952:31;:::i;:::-;8002:5;7992:15;;;7558:455;;;;;:::o;8249:142::-;8332:1;8325:5;8322:12;8312:46;;8338:18;;:::i;8396:213::-;8545:2;8530:18;;8557:46;8534:9;8585:6;8557:46;:::i;8614:315::-;8682:6;8690;8743:2;8731:9;8722:7;8718:23;8714:32;8711:52;;;8759:1;8756;8749:12;8711:52;8798:9;8785:23;8817:31;8842:5;8817:31;:::i;:::-;8867:5;8919:2;8904:18;;;;8891:32;;-1:-1:-1;;;8614:315:123:o;8934:316::-;9011:6;9019;9027;9080:2;9068:9;9059:7;9055:23;9051:32;9048:52;;;9096:1;9093;9086:12;9048:52;-1:-1:-1;;9119:23:123;;;9189:2;9174:18;;9161:32;;-1:-1:-1;9240:2:123;9225:18;;;9212:32;;8934:316;-1:-1:-1;8934:316:123:o;9255:143::-;9339:1;9332:5;9329:12;9319:46;;9345:18;;:::i;9403:215::-;9553:2;9538:18;;9565:47;9542:9;9594:6;9565:47;:::i;10063:261::-;10244:2;10233:9;10226:21;10207:4;10264:54;10314:2;10303:9;10299:18;10291:6;10264:54;:::i;10329:1357::-;10456:6;10464;10517:2;10505:9;10496:7;10492:23;10488:32;10485:52;;;10533:1;10530;10523:12;10485:52;10573:9;10560:23;10602:18;10643:2;10635:6;10632:14;10629:34;;;10659:1;10656;10649:12;10629:34;10682:61;10735:7;10726:6;10715:9;10711:22;10682:61;:::i;:::-;10672:71;;10762:2;10752:12;;10817:2;10806:9;10802:18;10789:32;10846:2;10836:8;10833:16;10830:36;;;10862:1;10859;10852:12;10830:36;10885:24;;10940:4;10932:13;;10928:27;-1:-1:-1;10918:55:123;;10969:1;10966;10959:12;10918:55;11005:2;10992:16;11028:60;11044:43;11084:2;11044:43;:::i;11028:60::-;11122:15;;;11204:1;11200:10;;;;11192:19;;11188:28;;;11153:12;;;;11228:19;;;11225:39;;;11260:1;11257;11250:12;11225:39;11292:2;11288;11284:11;11304:352;11320:6;11315:3;11312:15;11304:352;;;11406:3;11393:17;11442:2;11429:11;11426:19;11423:109;;;11486:1;11515:2;11511;11504:14;11423:109;11557:56;11605:7;11600:2;11586:11;11582:2;11578:20;11574:29;11557:56;:::i;:::-;11545:69;;-1:-1:-1;11634:12:123;;;;11337;;11304:352;;;11308:3;11675:5;11665:15;;;;;;;;10329:1357;;;;;:::o;11899:740::-;12132:2;12184:21;;;12254:13;;12157:18;;;12276:22;;;12103:4;;12132:2;12317;;12335:18;;;;12376:15;;;12103:4;12419:194;12433:6;12430:1;12427:13;12419:194;;;12482:51;12529:3;12520:6;12514:13;11774:12;;-1:-1:-1;;;;;11770:61:123;11758:74;;11881:4;11870:16;;;11864:23;11848:14;;11841:47;11691:203;12482:51;12553:12;;;;12588:15;;;;12455:1;12448:9;12419:194;;;-1:-1:-1;12630:3:123;;11899:740;-1:-1:-1;;;;;;;11899:740:123:o;12644:118::-;12730:5;12723:13;12716:21;12709:5;12706:32;12696:60;;12752:1;12749;12742:12;12767:241;12823:6;12876:2;12864:9;12855:7;12851:23;12847:32;12844:52;;;12892:1;12889;12882:12;12844:52;12931:9;12918:23;12950:28;12972:5;12950:28;:::i;13013:953::-;-1:-1:-1;;;;;13509:15:123;;;13491:34;;13561:15;;;13556:2;13541:18;;13534:43;13613:15;;13608:2;13593:18;;13586:43;13660:2;13645:18;;13638:34;;;13703:3;13688:19;;13681:35;;;13417:3;13402:19;;13725:59;13779:3;13764:19;;13756:6;13725:59;:::i;:::-;13821:6;13815:3;13804:9;13800:19;13793:35;13865:6;13859:3;13848:9;13844:19;13837:35;13909:6;13903:3;13892:9;13888:19;13881:35;13953:6;13947:3;13936:9;13932:19;13925:35;13013:953;;;;;;;;;;;;;:::o;13971:315::-;14039:6;14047;14100:2;14088:9;14079:7;14075:23;14071:32;14068:52;;;14116:1;14113;14106:12;14068:52;14152:9;14139:23;14129:33;;14212:2;14201:9;14197:18;14184:32;14225:31;14250:5;14225:31;:::i;14291:1202::-;14409:6;14440:2;14483;14471:9;14462:7;14458:23;14454:32;14451:52;;;14499:1;14496;14489:12;14451:52;14539:9;14526:23;14572:18;14564:6;14561:30;14558:50;;;14604:1;14601;14594:12;14558:50;14627:22;;14680:4;14672:13;;14668:27;-1:-1:-1;14658:55:123;;14709:1;14706;14699:12;14658:55;14745:2;14732:16;14768:60;14784:43;14824:2;14784:43;:::i;14768:60::-;14862:15;;;14944:1;14940:10;;;;14932:19;;14928:28;;;14893:12;;;;14968:19;;;14965:39;;;15000:1;14997;14990:12;14965:39;15024:11;;;;15044:419;15060:6;15055:3;15052:15;15044:419;;;15142:4;15136:3;15127:7;15123:17;15119:28;15116:118;;;15188:1;15217:2;15213;15206:14;15116:118;15260:22;;:::i;:::-;15309:17;;15295:32;;15376:12;;;15363:26;15347:14;;;15340:50;15403:18;;15086:4;15077:14;;;;15441:12;;;;15044:419;;15498:242;15641:2;15626:18;;15674:1;15663:13;;15653:47;;15680:18;;:::i;:::-;15709:25;;;15498:242;:::o;15745:388::-;15822:6;15830;15883:2;15871:9;15862:7;15858:23;15854:32;15851:52;;;15899:1;15896;15889:12;15851:52;15935:9;15922:23;15912:33;;15996:2;15985:9;15981:18;15968:32;16023:18;16015:6;16012:30;16009:50;;;16055:1;16052;16045:12;16009:50;16078:49;16119:7;16110:6;16099:9;16095:22;16078:49;:::i;:::-;16068:59;;;15745:388;;;;;:::o;16138:437::-;16217:1;16213:12;;;;16260;;;16281:61;;16335:4;16327:6;16323:17;16313:27;;16281:61;16388:2;16380:6;16377:14;16357:18;16354:38;16351:218;;-1:-1:-1;;;16422:1:123;16415:88;16526:4;16523:1;16516:15;16554:4;16551:1;16544:15;16833:184;-1:-1:-1;;;16882:1:123;16875:88;16982:4;16979:1;16972:15;17006:4;17003:1;16996:15;17022:128;17089:9;;;17110:11;;;17107:37;;;17124:18;;:::i;17528:184::-;-1:-1:-1;;;17577:1:123;17570:88;17677:4;17674:1;17667:15;17701:4;17698:1;17691:15;17717:274;17757:1;17783;17773:189;;-1:-1:-1;;;17815:1:123;17808:88;17919:4;17916:1;17909:15;17947:4;17944:1;17937:15;17773:189;-1:-1:-1;17976:9:123;;17717:274::o;17996:168::-;18069:9;;;18100;;18117:15;;;18111:22;;18097:37;18087:71;;18138:18;;:::i;18169:125::-;18234:9;;;18255:10;;;18252:36;;;18268:18;;:::i;18631:245::-;18698:6;18751:2;18739:9;18730:7;18726:23;18722:32;18719:52;;;18767:1;18764;18757:12;18719:52;18799:9;18793:16;18818:28;18840:5;18818:28;:::i;18881:184::-;18951:6;19004:2;18992:9;18983:7;18979:23;18975:32;18972:52;;;19020:1;19017;19010:12;18972:52;-1:-1:-1;19043:16:123;;18881:184;-1:-1:-1;18881:184:123:o;19070:138::-;19149:13;;19171:31;19149:13;19171:31;:::i;:::-;19070:138;;;:::o;19213:157::-;19302:13;;19344:1;19334:12;;19324:40;;19360:1;19357;19350:12;19375:156;19463:13;;19505:1;19495:12;;19485:40;;19521:1;19518;19511:12;19536:420;19611:5;19659:4;19647:9;19642:3;19638:19;19634:30;19631:50;;;19677:1;19674;19667:12;19631:50;19710:2;19704:9;19752:4;19744:6;19740:17;19823:6;19811:10;19808:22;19787:18;19775:10;19772:34;19769:62;19766:88;;;19834:18;;:::i;:::-;19870:2;19863:22;19933:16;;19918:32;;-1:-1:-1;19903:6:123;19536:420;-1:-1:-1;19536:420:123:o;19961:356::-;20030:5;20078:4;20066:9;20061:3;20057:19;20053:30;20050:50;;;20096:1;20093;20086:12;20050:50;20118:22;;:::i;:::-;20109:31;;20170:9;20164:16;20189:33;20214:7;20189:33;:::i;:::-;20245:7;20238:5;20231:22;;20306:2;20295:9;20291:18;20285:25;20280:2;20273:5;20269:14;20262:49;19961:356;;;;:::o;20322:972::-;20427:6;20480:3;20468:9;20459:7;20455:23;20451:33;20448:53;;;20497:1;20494;20487:12;20448:53;20523:22;;:::i;:::-;20568:40;20598:9;20568:40;:::i;:::-;20561:5;20554:55;20662:2;20651:9;20647:18;20641:25;20636:2;20629:5;20625:14;20618:49;20720:2;20709:9;20705:18;20699:25;20694:2;20687:5;20683:14;20676:49;20778:2;20767:9;20763:18;20757:25;20752:2;20745:5;20741:14;20734:49;20837:3;20826:9;20822:19;20816:26;20810:3;20803:5;20799:15;20792:51;20876:60;20931:3;20920:9;20916:19;20876:60;:::i;:::-;20870:3;20863:5;20859:15;20852:85;20970:59;21024:3;21013:9;21009:19;20970:59;:::i;:::-;20964:3;20957:5;20953:15;20946:84;21063:76;21131:7;21125:3;21114:9;21110:19;21063:76;:::i;:::-;21057:3;21050:5;21046:15;21039:101;21159:3;21194:69;21255:7;21250:2;21239:9;21235:18;21194:69;:::i;:::-;21178:14;;;21171:93;21182:5;20322:972;-1:-1:-1;;;20322:972:123:o;21299:1129::-;21489:4;21531:3;21520:9;21516:19;21508:27;;21562:6;21551:9;21544:25;-1:-1:-1;;;;;21615:6:123;21609:13;21605:62;21600:2;21589:9;21585:18;21578:90;21722:2;21714:6;21710:15;21704:22;21699:2;21688:9;21684:18;21677:50;21781:2;21773:6;21769:15;21763:22;21758:2;21747:9;21743:18;21736:50;21841:2;21833:6;21829:15;21823:22;21817:3;21806:9;21802:19;21795:51;21901:3;21893:6;21889:16;21883:23;21877:3;21866:9;21862:19;21855:52;21954:3;21946:6;21942:16;21936:23;21968:63;22026:3;22015:9;22011:19;21997:12;21968:63;:::i;:::-;;22080:3;22072:6;22068:16;22062:23;22094:64;22153:3;22142:9;22138:19;22122:14;22094:64;:::i;:::-;-1:-1:-1;22207:3:123;22195:16;;22189:23;22270:21;22231:3;22250:18;;;22243:49;;;;22329:15;;;22323:22;11774:12;;-1:-1:-1;;;;;11770:61:123;22417:3;22402:19;;11758:74;11881:4;11870:16;11864:23;11848:14;;;;11841:47;21299:1129;;-1:-1:-1;21299:1129:123:o;23059:726::-;23125:5;23173:4;23161:9;23156:3;23152:19;23148:30;23145:50;;;23191:1;23188;23181:12;23145:50;23213:22;;:::i;:::-;23204:31;;23264:9;23258:16;23251:5;23244:31;23319:2;23308:9;23304:18;23298:25;23346:18;23338:6;23335:30;23332:50;;;23378:1;23375;23368:12;23332:50;23401:22;;23454:4;23446:13;;23442:23;-1:-1:-1;23432:51:123;;23479:1;23476;23469:12;23432:51;23508:2;23502:9;23533:48;23549:31;23577:2;23549:31;:::i;23533:48::-;23604:2;23597:5;23590:17;23644:3;23639:2;23634;23630;23626:11;23622:20;23619:29;23616:49;;;23661:1;23658;23651:12;23616:49;23674:67;23738:2;23733;23726:5;23722:14;23717:2;23713;23709:11;23674:67;:::i;:::-;23768:2;23757:14;;23750:29;-1:-1:-1;23761:5:123;;23059:726;-1:-1:-1;;;23059:726:123:o;23790:1028::-;23882:6;23935:2;23923:9;23914:7;23910:23;23906:32;23903:52;;;23951:1;23948;23941:12;23903:52;23984:9;23978:16;24013:18;24054:2;24046:6;24043:14;24040:34;;;24070:1;24067;24060:12;24040:34;24093:22;;;;24149:4;24131:16;;;24127:27;24124:47;;;24167:1;24164;24157:12;24124:47;24193:22;;:::i;:::-;24244:2;24238:9;24231:5;24224:24;24286:2;24282;24278:11;24272:18;24299:33;24324:7;24299:33;:::i;:::-;24359:2;24348:14;;24341:31;24410:2;24402:11;;24396:18;24423:33;24396:18;24423:33;:::i;:::-;24483:2;24472:14;;24465:31;24535:2;24527:11;;24521:18;24551:16;;;24548:36;;;24580:1;24577;24570:12;24548:36;24616:65;24673:7;24662:8;24658:2;24654:17;24616:65;:::i;:::-;24611:2;24604:5;24600:14;24593:89;;24729:3;24725:2;24721:12;24715:19;24709:3;24702:5;24698:15;24691:44;24782:3;24778:2;24774:12;24768:19;24762:3;24755:5;24751:15;24744:44;24807:5;24797:15;;;;;23790:1028;;;;:::o;25196:986::-;25299:6;25352:2;25340:9;25331:7;25327:23;25323:32;25320:52;;;25368:1;25365;25358:12;25320:52;25401:9;25395:16;25430:18;25471:2;25463:6;25460:14;25457:34;;;25487:1;25484;25477:12;25457:34;25510:22;;;;25566:4;25548:16;;;25544:27;25541:47;;;25584:1;25581;25574:12;25541:47;25610:22;;:::i;:::-;25661:2;25655:9;25648:5;25641:24;25703:2;25699;25695:11;25689:18;25716:33;25741:7;25716:33;:::i;:::-;25776:2;25765:14;;25758:31;25835:2;25827:11;;;25821:18;25805:14;;;25798:42;25878:2;25870:11;;25864:18;25891:33;25864:18;25891:33;:::i;:::-;25951:2;25940:14;;25933:31;26003:3;25995:12;;25989:19;26020:16;;;26017:36;;;26049:1;26046;26039:12;26017:36;26086:65;26143:7;26132:8;26128:2;26124:17;26086:65;:::i;:::-;26080:3;26069:15;;26062:90;-1:-1:-1;26073:5:123;25196:986;-1:-1:-1;;;;;25196:986:123:o;26187:265::-;26271:6;26324:2;26312:9;26303:7;26299:23;26295:32;26292:52;;;26340:1;26337;26330:12;26292:52;26372:9;26366:16;26391:31;26416:5;26391:31;:::i;26457:135::-;26496:3;26517:17;;;26514:43;;26537:18;;:::i;:::-;-1:-1:-1;26584:1:123;26573:13;;26457:135::o;26723:545::-;26825:2;26820:3;26817:11;26814:448;;;26861:1;26886:5;26882:2;26875:17;26931:4;26927:2;26917:19;27001:2;26989:10;26985:19;26982:1;26978:27;26972:4;26968:38;27037:4;27025:10;27022:20;27019:47;;;-1:-1:-1;27060:4:123;27019:47;27115:2;27110:3;27106:12;27103:1;27099:20;27093:4;27089:31;27079:41;;27170:82;27188:2;27181:5;27178:13;27170:82;;;27233:17;;;27214:1;27203:13;27170:82;;;27174:3;;;26723:545;;;:::o;27444:1352::-;27570:3;27564:10;27597:18;27589:6;27586:30;27583:56;;;27619:18;;:::i;:::-;27648:97;27738:6;27698:38;27730:4;27724:11;27698:38;:::i;:::-;27692:4;27648:97;:::i;:::-;27800:4;;27864:2;27853:14;;27881:1;27876:663;;;;28583:1;28600:6;28597:89;;;-1:-1:-1;28652:19:123;;;28646:26;28597:89;-1:-1:-1;;27401:1:123;27397:11;;;27393:24;27389:29;27379:40;27425:1;27421:11;;;27376:57;28699:81;;27846:944;;27876:663;26670:1;26663:14;;;26707:4;26694:18;;-1:-1:-1;;27912:20:123;;;28030:236;28044:7;28041:1;28038:14;28030:236;;;28133:19;;;28127:26;28112:42;;28225:27;;;;28193:1;28181:14;;;;28060:19;;28030:236;;;28034:3;28294:6;28285:7;28282:19;28279:201;;;28355:19;;;28349:26;-1:-1:-1;;28438:1:123;28434:14;;;28450:3;28430:24;28426:37;28422:42;28407:58;28392:74;;28279:201;-1:-1:-1;;;;;28526:1:123;28510:14;;;28506:22;28493:36;;-1:-1:-1;27444:1352:123:o;29072:273::-;29140:6;29193:2;29181:9;29172:7;29168:23;29164:32;29161:52;;;29209:1;29206;29199:12;29161:52;29241:9;29235:16;29291:4;29284:5;29280:16;29273:5;29270:27;29260:55;;29311:1;29308;29301:12;29350:422;29439:1;29482:5;29439:1;29496:270;29517:7;29507:8;29504:21;29496:270;;;29576:4;29572:1;29568:6;29564:17;29558:4;29555:27;29552:53;;;29585:18;;:::i;:::-;29635:7;29625:8;29621:22;29618:55;;;29655:16;;;;29618:55;29734:22;;;;29694:15;;;;29496:270;;;29500:3;29350:422;;;;;:::o;29777:806::-;29826:5;29856:8;29846:80;;-1:-1:-1;29897:1:123;29911:5;;29846:80;29945:4;29935:76;;-1:-1:-1;29982:1:123;29996:5;;29935:76;30027:4;30045:1;30040:59;;;;30113:1;30108:130;;;;30020:218;;30040:59;30070:1;30061:10;;30084:5;;;30108:130;30145:3;30135:8;30132:17;30129:43;;;30152:18;;:::i;:::-;-1:-1:-1;;30208:1:123;30194:16;;30223:5;;30020:218;;30322:2;30312:8;30309:16;30303:3;30297:4;30294:13;30290:36;30284:2;30274:8;30271:16;30266:2;30260:4;30257:12;30253:35;30250:77;30247:159;;;-1:-1:-1;30359:19:123;;;30391:5;;30247:159;30438:34;30463:8;30457:4;30438:34;:::i;:::-;30508:6;30504:1;30500:6;30496:19;30487:7;30484:32;30481:58;;;30519:18;;:::i;:::-;30557:20;;29777:806;-1:-1:-1;;;29777:806:123:o;30588:131::-;30648:5;30677:36;30704:8;30698:4;30677:36;:::i;31081:184::-;-1:-1:-1;;;31130:1:123;31123:88;31230:4;31227:1;31220:15;31254:4;31251:1;31244:15;31270:1185;31399:6;31430:2;31473;31461:9;31452:7;31448:23;31444:32;31441:52;;;31489:1;31486;31479:12;31441:52;31522:9;31516:16;31555:18;31547:6;31544:30;31541:50;;;31587:1;31584;31577:12;31541:50;31610:22;;31663:4;31655:13;;31651:27;-1:-1:-1;31641:55:123;;31692:1;31689;31682:12;31641:55;31721:2;31715:9;31744:60;31760:43;31800:2;31760:43;:::i;31744:60::-;31838:15;;;31920:1;31916:10;;;;31908:19;;31904:28;;;31869:12;;;;31944:19;;;31941:39;;;31976:1;31973;31966:12;31941:39;32000:11;;;;32020:405;32036:6;32031:3;32028:15;32020:405;;;32118:4;32112:3;32103:7;32099:17;32095:28;32092:118;;;32164:1;32193:2;32189;32182:14;32092:118;32236:22;;:::i;:::-;32285:10;;32271:25;;32338:12;;;32332:19;32316:14;;;32309:43;32365:18;;32062:4;32053:14;;;;32403:12;;;;32020:405;;32460:184;-1:-1:-1;;;32509:1:123;32502:88;32609:4;32606:1;32599:15;32633:4;32630:1;32623:15;32649:220;32798:2;32787:9;32780:21;32761:4;32818:45;32859:2;32848:9;32844:18;32836:6;32818:45;:::i;32874:291::-;33051:2;33040:9;33033:21;33014:4;33071:45;33112:2;33101:9;33097:18;33089:6;33071:45;:::i;:::-;33063:53;;33152:6;33147:2;33136:9;33132:18;33125:34;32874:291;;;;;:::o;33936:216::-;34000:9;;;34028:11;;;33975:3;34058:9;;34086:10;;34082:19;;34111:10;;34103:19;;34079:44;34076:70;;;34126:18;;:::i","linkReferences":{},"immutableReferences":{"3335":[{"start":1138,"length":32},{"start":6287,"length":32},{"start":6434,"length":32},{"start":7083,"length":32}],"3337":[{"start":1502,"length":32}]}},"methodIdentifiers":{"D()":"0f529ba2","MAX_STAKED_PROPOSALS()":"406244d8","NATIVE()":"a0cf0aea","_minThresholdPoints()":"7c6570ba","activatePoints()":"814516ad","allocate(bytes,address)":"ef2920fc","calculateConviction(uint256,uint256,uint256)":"346db8cb","calculateThreshold(uint256)":"59a5db8b","canExecuteProposal(uint256)":"824ea8ed","deactivatePoints()":"1ddf1e23","deactivatePoints(address)":"6453d9c4","decay()":"54fac919","decreasePower(address,uint256)":"2ed04b2b","distribute(address[],bytes,address)":"0a6f0ee9","getAllo()":"15cc481e","getMaxAmount()":"0ba95909","getMaxConviction(uint256)":"950559d7","getMetadata(uint256)":"a574cea4","getPayouts(address[],bytes[])":"b2b878d0","getPointSystem()":"c3292171","getPoolAmount()":"4ab4ba42","getPoolId()":"38fff2d0","getProposal(uint256)":"c7f758a8","getProposalStakedAmount(uint256)":"dc96ff2d","getProposalVoterStake(uint256,address)":"e0dd2c38","getRecipientStatus(address)":"eb11af93","getStrategyId()":"42fda9c7","getTotalVoterStakePct(address)":"bcc5b93b","increasePoolAmount(uint256)":"f5b0dfb7","increasePower(address,uint256)":"782aadff","initialize(uint256,bytes)":"edd146cc","isPoolActive()":"df868ed3","isValidAllocator(address)":"4d31d087","maxRatio()":"76365af7","pointConfig()":"a47ff7e5","pointSystem()":"2dbd6fdd","proposalCounter()":"0c0512e9","proposalType()":"351d9f96","proposals(uint256)":"013cf08b","registerRecipient(bytes,address)":"2bbe0cae","registryCommunity()":"6003e414","setDecay(uint256)":"69fa25c4","setMaxRatio(uint256)":"11f22ae3","setMinThresholdPoints(uint256)":"2cefadbb","setPoolActive(bool)":"b5f620ce","setRegistryCommunity(address)":"058aca44","setWeight(uint256)":"fc1711f2","supportProposal((uint256,int256)[])":"e33add93","supportsInterface(bytes4)":"01ffc9a7","totalEffectiveActivePoints()":"d1e36232","totalPointsActivated()":"aba9ffee","totalStaked()":"817b1cd2","totalVoterStakePct(address)":"5db64b99","updateProposalConviction(uint256)":"1aa91a9e","voterStakedProposals(address,uint256)":"868c57b8","weight()":"a1aab33f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountOverMaxRatio\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CantIncreaseFixedSystem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConvictionUnderMinimumThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxPointsReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointsSupport\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pointsBalance\",\"type\":\"uint256\"}],\"name\":\"NotEnoughPointsToSupport\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCommunityAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_poolAmount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountNotEnough\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalDataIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotActive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotInList\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ProposalSupportDuplicated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_support\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"_delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"_result\",\"type\":\"int256\"}],\"name\":\"SupportUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserIsInactive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Allocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"DecayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"InitializedCV\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"}],\"name\":\"MaxRatioUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"before\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"}],\"name\":\"MinThresholdPointsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"PointsDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"PoolActive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensUnStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToDecrease\",\"type\":\"uint256\"}],\"name\":\"PowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"PowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStakedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"}],\"name\":\"SupportAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"WeightUpdated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"D\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKED_PROPOSALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_minThresholdPoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"}],\"name\":\"calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"}],\"name\":\"calculateThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"canExecuteProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canBeExecuted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUnstake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllo\",\"outputs\":[{\"internalType\":\"contract IAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getMaxConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"name\":\"getPayouts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IStrategy.PayoutSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voterStakedPoints\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getProposalVoterStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipientId\",\"type\":\"address\"}],\"name\":\"getRecipientStatus\",\"outputs\":[{\"internalType\":\"enum IStrategy.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStrategyId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getTotalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"increasePoolAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPoolActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocator\",\"type\":\"address\"}],\"name\":\"isValidAllocator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalType\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCommunity\",\"outputs\":[{\"internalType\":\"contract RegistryCommunity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decay\",\"type\":\"uint256\"}],\"name\":\"setDecay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxRatio\",\"type\":\"uint256\"}],\"name\":\"setMaxRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints_\",\"type\":\"uint256\"}],\"name\":\"setMinThresholdPoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"setPoolActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"setRegistryCommunity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_weight\",\"type\":\"uint256\"}],\"name\":\"setWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deltaSupport\",\"type\":\"int256\"}],\"internalType\":\"struct StrategyStruct.ProposalSupport[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"supportProposal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEffectiveActivePoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalPointsActivated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"updateProposalConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voterStakedProposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"params\":{\"amount\":\"The amount allocated\",\"recipientId\":\"The ID of the recipient\",\"token\":\"The token allocated\"}},\"Distributed(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount distributed\",\"recipientAddress\":\"The recipient\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}},\"Initialized(uint256,bytes)\":{\"params\":{\"data\":\"The data passed to the 'initialize' function\",\"poolId\":\"The ID of the pool\"}},\"PoolActive(bool)\":{\"params\":{\"active\":\"The status of the pool\"}},\"Registered(address,bytes,address)\":{\"params\":{\"data\":\"The data passed to the 'registerRecipient' function\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to allocate to the recipient\",\"_sender\":\"The address of the sender\"}},\"calculateConviction(uint256,uint256,uint256)\":{\"details\":\"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\",\"params\":{\"_lastConv\":\"Last conviction record\",\"_oldAmount\":\"Amount of tokens staked until now\",\"_timePassed\":\"Number of blocks since last conviction record\"},\"returns\":{\"_0\":\"Current conviction\"}},\"calculateThreshold(uint256)\":{\"details\":\"Formula: \\u03c1 * totalStaked / (1 - a) / (\\u03b2 - requestedAmount / total)**2 For the Solidity implementation we amplify \\u03c1 and \\u03b2 and simplify the formula: weight = \\u03c1 * D maxRatio = \\u03b2 * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\",\"params\":{\"_requestedAmount\":\"Requested amount of tokens on certain proposal\"},\"returns\":{\"_threshold\":\"Threshold a proposal's conviction should surpass in order to be able to executed it.\"}},\"distribute(address[],bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to distribute to the recipients\",\"_recipientIds\":\"The IDs of the recipients\",\"_sender\":\"The address of the sender\"}},\"getAllo()\":{\"returns\":{\"_0\":\"The Allo contract\"}},\"getPayouts(address[],bytes[])\":{\"returns\":{\"_0\":\"Input the values you would send to distribute(), get the amounts each recipient in the array would receive\"}},\"getPoolAmount()\":{\"returns\":{\"_0\":\"The balance of the pool\"}},\"getPoolId()\":{\"returns\":{\"_0\":\"The ID of the pool\"}},\"getProposal(uint256)\":{\"details\":\"Get proposal details\",\"params\":{\"_proposalId\":\"Proposal id\"},\"returns\":{\"beneficiary\":\"Proposal beneficiary\",\"blockLast\":\"Last block when conviction was calculated\",\"convictionLast\":\"Last conviction calculated\",\"proposalStatus\":\"Proposal status\",\"requestedAmount\":\"Proposal requested amount\",\"requestedToken\":\"Proposal requested token\",\"stakedAmount\":\"Proposal staked points\",\"submitter\":\"Proposal submitter\",\"threshold\":\"Proposal threshold\"}},\"getProposalVoterStake(uint256,address)\":{\"params\":{\"_proposalId\":\"Proposal id\",\"_voter\":\"Voter address\"},\"returns\":{\"_0\":\"Proposal voter stake\"}},\"getRecipientStatus(address)\":{\"params\":{\"_recipientId\":\"The ID of the recipient\"},\"returns\":{\"_0\":\"The status of the recipient\"}},\"getStrategyId()\":{\"returns\":{\"_0\":\"The ID of the strategy\"}},\"increasePoolAmount(uint256)\":{\"details\":\"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.\",\"params\":{\"_amount\":\"The amount to increase the pool by\"}},\"initialize(uint256,bytes)\":{\"params\":{\"_data\":\"The encoded data\",\"_poolId\":\"The ID of the pool\"}},\"isPoolActive()\":{\"returns\":{\"_0\":\"'true' if the pool is active, otherwise 'false'\"}},\"isValidAllocator(address)\":{\"details\":\"How the allocator is determined is up to the strategy implementation.\",\"params\":{\"_allocator\":\"The address to check if it is a valid allocator for the strategy.\"},\"returns\":{\"_0\":\"'true' if the address is a valid allocator, 'false' otherwise\"}},\"registerRecipient(bytes,address)\":{\"details\":\"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to register the recipient\",\"_sender\":\"The address of the sender\"},\"returns\":{\"recipientId\":\"The recipientId\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"notice\":\"Emitted when a recipient is allocated to.\"},\"Distributed(address,address,uint256,address)\":{\"notice\":\"Emitted when tokens are distributed.\"},\"Initialized(uint256,bytes)\":{\"notice\":\"Emitted when strategy is initialized.\"},\"PoolActive(bool)\":{\"notice\":\"Emitted when pool is set to active status.\"},\"Registered(address,bytes,address)\":{\"notice\":\"Emitted when a recipient is registered.\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"allocate(bytes,address)\":{\"notice\":\"Allocates to a recipient.\"},\"distribute(address[],bytes,address)\":{\"notice\":\"Distributes funds (tokens) to recipients.\"},\"getAllo()\":{\"notice\":\"Getter for the 'Allo' contract.\"},\"getPoolAmount()\":{\"notice\":\"Getter for the 'poolAmount'.\"},\"getPoolId()\":{\"notice\":\"Getter for the 'poolId'.\"},\"getProposalVoterStake(uint256,address)\":{\"notice\":\"Get stake of voter `_voter` on proposal #`_proposalId`\"},\"getRecipientStatus(address)\":{\"notice\":\"Getter for the status of a recipient.\"},\"getStrategyId()\":{\"notice\":\"Getter for the 'strategyId'.\"},\"increasePoolAmount(uint256)\":{\"notice\":\"Increases the pool amount.\"},\"initialize(uint256,bytes)\":{\"notice\":\"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize().\"},\"isPoolActive()\":{\"notice\":\"Getter for whether or not the pool is active.\"},\"isValidAllocator(address)\":{\"notice\":\"Checks if the '_allocator' is a valid allocator.\"},\"registerRecipient(bytes,address)\":{\"notice\":\"Registers a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"CVStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_allo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[],"type":"error","name":"AmountOverMaxRatio"},{"inputs":[],"type":"error","name":"CantIncreaseFixedSystem"},{"inputs":[],"type":"error","name":"ConvictionUnderMinimumThreshold"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"MaxPointsReached"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[{"internalType":"uint256","name":"pointsSupport","type":"uint256"},{"internalType":"uint256","name":"pointsBalance","type":"uint256"}],"type":"error","name":"NotEnoughPointsToSupport"},{"inputs":[],"type":"error","name":"NotImplemented"},{"inputs":[],"type":"error","name":"OnlyCommunityAllowed"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"_requestedAmount","type":"uint256"},{"internalType":"uint256","name":"_poolAmount","type":"uint256"}],"type":"error","name":"PoolAmountNotEnough"},{"inputs":[],"type":"error","name":"PoolIdCannotBeZero"},{"inputs":[],"type":"error","name":"PoolIsEmpty"},{"inputs":[],"type":"error","name":"ProposalDataIsEmpty"},{"inputs":[],"type":"error","name":"ProposalIdCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotActive"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotInList"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"ProposalSupportDuplicated"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_support","type":"uint256"},{"internalType":"int256","name":"_delta","type":"int256"},{"internalType":"int256","name":"_result","type":"int256"}],"type":"error","name":"SupportUnderflow"},{"inputs":[],"type":"error","name":"TokenCannotBeZero"},{"inputs":[],"type":"error","name":"TokenNotAllowed"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"UserCannotBeZero"},{"inputs":[],"type":"error","name":"UserIsInactive"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Allocated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"decay","type":"uint256","indexed":false}],"type":"event","name":"DecayUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"beneficiary","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"address","name":"recipientAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"struct StrategyStruct.InitializeParams","name":"data","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}],"indexed":false}],"type":"event","name":"InitializedCV","anonymous":false},{"inputs":[{"internalType":"uint256","name":"maxRatio","type":"uint256","indexed":false}],"type":"event","name":"MaxRatioUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"before","type":"uint256","indexed":false},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256","indexed":false}],"type":"event","name":"MinThresholdPointsUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false}],"type":"event","name":"PointsDeactivated","anonymous":false},{"inputs":[{"internalType":"bool","name":"active","type":"bool","indexed":false}],"type":"event","name":"PoolActive","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PoolAmountIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensUnStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToDecrease","type":"uint256","indexed":false}],"type":"event","name":"PowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"PowerIncreased","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalStakedAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"convictionLast","type":"uint256","indexed":false}],"type":"event","name":"SupportAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"weight","type":"uint256","indexed":false}],"type":"event","name":"WeightUpdated","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"D","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_STAKED_PROPOSALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_minThresholdPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"activatePoints"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_requestedAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateThreshold","outputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"canExecuteProposal","outputs":[{"internalType":"bool","name":"canBeExecuted","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[],"stateMutability":"view","type":"function","name":"decay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUnstake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllo","outputs":[{"internalType":"contract IAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMaxConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMetadata","outputs":[{"internalType":"struct Metadata","name":"","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"getPayouts","outputs":[{"internalType":"struct IStrategy.PayoutSummary[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"recipientAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposal","outputs":[{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"voterStakedPoints","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposalStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getProposalVoterStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_recipientId","type":"address"}],"stateMutability":"view","type":"function","name":"getRecipientStatus","outputs":[{"internalType":"enum IStrategy.Status","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStrategyId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePoolAmount"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isPoolActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_allocator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidAllocator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointConfig","outputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalType","outputs":[{"internalType":"enum StrategyStruct.ProposalType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"recipientId","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCommunity","outputs":[{"internalType":"contract RegistryCommunity","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_decay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDecay"},{"inputs":[{"internalType":"uint256","name":"_maxRatio","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxRatio"},{"inputs":[{"internalType":"uint256","name":"minThresholdPoints_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinThresholdPoints"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPoolActive"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRegistryCommunity"},{"inputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setWeight"},{"inputs":[{"internalType":"struct StrategyStruct.ProposalSupport[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"int256","name":"deltaSupport","type":"int256"}]}],"stateMutability":"pure","type":"function","name":"supportProposal"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEffectiveActivePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalPointsActivated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"totalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateProposalConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voterStakedProposals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"allocate(bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to allocate to the recipient","_sender":"The address of the sender"}},"calculateConviction(uint256,uint256,uint256)":{"details":"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128","params":{"_lastConv":"Last conviction record","_oldAmount":"Amount of tokens staked until now","_timePassed":"Number of blocks since last conviction record"},"returns":{"_0":"Current conviction"}},"calculateThreshold(uint256)":{"details":"Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2 For the Solidity implementation we amplify ρ and β and simplify the formula: weight = ρ * D maxRatio = β * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2","params":{"_requestedAmount":"Requested amount of tokens on certain proposal"},"returns":{"_threshold":"Threshold a proposal's conviction should surpass in order to be able to executed it."}},"distribute(address[],bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to distribute to the recipients","_recipientIds":"The IDs of the recipients","_sender":"The address of the sender"}},"getAllo()":{"returns":{"_0":"The Allo contract"}},"getPayouts(address[],bytes[])":{"returns":{"_0":"Input the values you would send to distribute(), get the amounts each recipient in the array would receive"}},"getPoolAmount()":{"returns":{"_0":"The balance of the pool"}},"getPoolId()":{"returns":{"_0":"The ID of the pool"}},"getProposal(uint256)":{"details":"Get proposal details","params":{"_proposalId":"Proposal id"},"returns":{"beneficiary":"Proposal beneficiary","blockLast":"Last block when conviction was calculated","convictionLast":"Last conviction calculated","proposalStatus":"Proposal status","requestedAmount":"Proposal requested amount","requestedToken":"Proposal requested token","stakedAmount":"Proposal staked points","submitter":"Proposal submitter","threshold":"Proposal threshold"}},"getProposalVoterStake(uint256,address)":{"params":{"_proposalId":"Proposal id","_voter":"Voter address"},"returns":{"_0":"Proposal voter stake"}},"getRecipientStatus(address)":{"params":{"_recipientId":"The ID of the recipient"},"returns":{"_0":"The status of the recipient"}},"getStrategyId()":{"returns":{"_0":"The ID of the strategy"}},"increasePoolAmount(uint256)":{"details":"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.","params":{"_amount":"The amount to increase the pool by"}},"initialize(uint256,bytes)":{"params":{"_data":"The encoded data","_poolId":"The ID of the pool"}},"isPoolActive()":{"returns":{"_0":"'true' if the pool is active, otherwise 'false'"}},"isValidAllocator(address)":{"details":"How the allocator is determined is up to the strategy implementation.","params":{"_allocator":"The address to check if it is a valid allocator for the strategy."},"returns":{"_0":"'true' if the address is a valid allocator, 'false' otherwise"}},"registerRecipient(bytes,address)":{"details":"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to register the recipient","_sender":"The address of the sender"},"returns":{"recipientId":"The recipientId"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"allocate(bytes,address)":{"notice":"Allocates to a recipient."},"distribute(address[],bytes,address)":{"notice":"Distributes funds (tokens) to recipients."},"getAllo()":{"notice":"Getter for the 'Allo' contract."},"getPoolAmount()":{"notice":"Getter for the 'poolAmount'."},"getPoolId()":{"notice":"Getter for the 'poolId'."},"getProposalVoterStake(uint256,address)":{"notice":"Get stake of voter `_voter` on proposal #`_proposalId`"},"getRecipientStatus(address)":{"notice":"Getter for the status of a recipient."},"getStrategyId()":{"notice":"Getter for the 'strategyId'."},"increasePoolAmount(uint256)":{"notice":"Increases the pool amount."},"initialize(uint256,bytes)":{"notice":"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize()."},"isPoolActive()":{"notice":"Getter for whether or not the pool is active."},"isValidAllocator(address)":{"notice":"Checks if the '_allocator' is a valid allocator."},"registerRecipient(bytes,address)":{"notice":"Registers a recipient."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"CVStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"id":109} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_allo","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"D","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_STAKED_PROPOSALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_minThresholdPoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"calculateThreshold","inputs":[{"name":"_requestedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"canExecuteProposal","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canBeExecuted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deactivatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUnstake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"distribute","inputs":[{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAllo"}],"stateMutability":"view"},{"type":"function","name":"getMaxAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMaxConviction","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMetadata","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getPayouts","inputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IStrategy.PayoutSummary[]","components":[{"name":"recipientAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"getPoolAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPoolId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposal","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"submitter","type":"address","internalType":"address"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"voterStakedPoints","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalStakedAmount","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalVoterStake","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRecipientStatus","inputs":[{"name":"_recipientId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IStrategy.Status"}],"stateMutability":"view"},{"type":"function","name":"getStrategyId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTotalVoterStakePct","inputs":[{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increasePoolAmount","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isPoolActive","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidAllocator","inputs":[{"name":"_allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxRatio","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointConfig","inputs":[],"outputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"proposalCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.ProposalType"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"submitter","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"recipientId","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"registryCommunity","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract RegistryCommunity"}],"stateMutability":"view"},{"type":"function","name":"setDecay","inputs":[{"name":"_decay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxRatio","inputs":[{"name":"_maxRatio","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinThresholdPoints","inputs":[{"name":"minThresholdPoints_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPoolActive","inputs":[{"name":"_active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRegistryCommunity","inputs":[{"name":"_registryCommunity","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWeight","inputs":[{"name":"_weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportProposal","inputs":[{"name":"","type":"tuple[]","internalType":"struct StrategyStruct.ProposalSupport[]","components":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"deltaSupport","type":"int256","internalType":"int256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalEffectiveActivePoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalPointsActivated","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalStaked","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalVoterStakePct","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateProposalConviction","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"voterStakedProposals","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"weight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Allocated","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DecayUpdated","inputs":[{"name":"decay","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"beneficiary","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"recipientAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"InitializedCV","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"tuple","indexed":false,"internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"anonymous":false},{"type":"event","name":"MaxRatioUpdated","inputs":[{"name":"maxRatio","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinThresholdPointsUpdated","inputs":[{"name":"before","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PointsDeactivated","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolActive","inputs":[{"name":"active","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PoolAmountIncreased","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerDecreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensUnStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToDecrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerIncreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Registered","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupportAdded","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalStakedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"convictionLast","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WeightUpdated","inputs":[{"name":"weight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"AmountOverMaxRatio","inputs":[]},{"type":"error","name":"CantIncreaseFixedSystem","inputs":[]},{"type":"error","name":"ConvictionUnderMinimumThreshold","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"MaxPointsReached","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NotEnoughPointsToSupport","inputs":[{"name":"pointsSupport","type":"uint256","internalType":"uint256"},{"name":"pointsBalance","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[]},{"type":"error","name":"OnlyCommunityAllowed","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"PoolAmountNotEnough","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_requestedAmount","type":"uint256","internalType":"uint256"},{"name":"_poolAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PoolIdCannotBeZero","inputs":[]},{"type":"error","name":"PoolIsEmpty","inputs":[]},{"type":"error","name":"ProposalDataIsEmpty","inputs":[]},{"type":"error","name":"ProposalIdCannotBeZero","inputs":[]},{"type":"error","name":"ProposalNotActive","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalNotInList","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalSupportDuplicated","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SupportUnderflow","inputs":[{"name":"_support","type":"uint256","internalType":"uint256"},{"name":"_delta","type":"int256","internalType":"int256"},{"name":"_result","type":"int256","internalType":"int256"}]},{"type":"error","name":"TokenCannotBeZero","inputs":[]},{"type":"error","name":"TokenNotAllowed","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"UserCannotBeZero","inputs":[]},{"type":"error","name":"UserIsInactive","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x60c0604052600060065560006009553480156200001b57600080fd5b5060405162004ab338038062004ab38339810160408190526200003e91620000a6565b604080518082018252600a8152694356537472617465677960b01b6020808301919091526001600160a01b038416608052915183926200008191839101620000d8565b60408051601f19818403018152919052805160209091012060a0525062000128915050565b600060208284031215620000b957600080fd5b81516001600160a01b0381168114620000d157600080fd5b9392505050565b600060208083528351808285015260005b818110156200010757858101830151858201604001528201620000e9565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a0516149506200016360003960006105de0152600081816104720152818161188f015281816119220152611bab01526149506000f3fe60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea26469706673582212201925b375d8f16d24f2498ecae6268d45185c61936f9b601db1091bc2667b710b64736f6c63430008130033","sourceMap":"2822:37282:127:-:0;;;6387:1;6354:34;;6504:1;6467:38;;7496:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5210:135:11;;;;;;;;;;;-1:-1:-1;;;5210:135:11;;;;;;;;-1:-1:-1;;;;;5268:19:11;;;;5320:17;;7544:5:127;;5320:17:11;;5210:135;;5320:17;;:::i;:::-;;;;-1:-1:-1;;5320:17:11;;;;;;;;;5310:28;;5320:17;5310:28;;;;5297:41;;-1:-1:-1;2822:37282:127;;-1:-1:-1;;2822:37282:127;14:290:144;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:144;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:144:o;309:548::-;421:4;450:2;479;468:9;461:21;511:6;505:13;554:6;549:2;538:9;534:18;527:34;579:1;589:140;603:6;600:1;597:13;589:140;;;698:14;;;694:23;;688:30;664:17;;;683:2;660:26;653:66;618:10;;589:140;;;593:3;778:1;773:2;764:6;753:9;749:22;745:31;738:42;848:2;841;837:7;832:2;824:6;820:15;816:29;805:9;801:45;797:54;789:62;;;;309:548;;;;:::o;:::-;2822:37282:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea26469706673582212201925b375d8f16d24f2498ecae6268d45185c61936f9b601db1091bc2667b710b64736f6c63430008130033","sourceMap":"2822:37282:127:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7028:60;;;;;;;;;;-1:-1:-1;7028:60:127;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9003:202;;;;;;;;;;-1:-1:-1;9003:202:127;;;;;:::i;:::-;;:::i;:::-;;;2891:14:144;;2884:22;2866:41;;2854:2;2839:18;9003:202:127;2726:187:144;39640:219:127;;;;;;;;;;-1:-1:-1;39640:219:127;;;;;:::i;:::-;;:::i;10705:325:11:-;;;;;;;;;;-1:-1:-1;10705:325:11;;;;;:::i;:::-;;:::i;17263:99:127:-;;;;;;;;;;-1:-1:-1;17334:11:127;:21;17263:99;;;7277:25:144;;;7265:2;7250:18;17263:99:127;7131:177:144;6354:34:127;;;;;;;;;;;;;;;;5806:36;;;;;;;;;;;;5834:8;5806:36;;39330:155;;;;;;;;;;-1:-1:-1;39330:155:127;;;;;:::i;:::-;;:::i;6785:86:11:-;;;;;;;;;;-1:-1:-1;6860:4:11;6785:86;;;-1:-1:-1;;;;;7491:55:144;;;7473:74;;7461:2;7446:18;6785:86:11;7313:240:144;38531:520:127;;;;;;;;;;-1:-1:-1;38531:520:127;;;;;:::i;:::-;;:::i;12595:81::-;;;;;;;;;;;;;:::i;9429:344:11:-;;;;;;:::i;:::-;;:::i;39865:237:127:-;;;;;;;;;;-1:-1:-1;39865:237:127;;;;;:::i;:::-;;:::i;6784:45::-;;;;;;;;;;-1:-1:-1;6784:45:127;;;;;;;;;;;;;;;;;;:::i;14137:681::-;;;;;;;;;;-1:-1:-1;14137:681:127;;;;;:::i;:::-;;:::i;32689:1145::-;;;;;;;;;;-1:-1:-1;32689:1145:127;;;;;:::i;:::-;;:::i;6678:47::-;;;;;;;;;;-1:-1:-1;6678:47:127;;;;;;;;;;;;;;;:::i;6953:92:11:-;;;;;;;;;;-1:-1:-1;7032:6:11;;6953:92;;6095:49:127;;;;;;;;;;;;6142:2;6095:49;;7135:100:11;;;;;;;;;;-1:-1:-1;7218:10:11;7135:100;;7326:108;;;;;;;;;;-1:-1:-1;7417:10:11;;7326:108;;12395:145;;;;;;;;;;-1:-1:-1;12395:145:11;;;;;:::i;:::-;;:::i;6272:20:127:-;;;;;;;;;;;;;;;;34415:1482;;;;;;;;;;-1:-1:-1;34415:1482:127;;;;;:::i;:::-;;:::i;7144:53::-;;;;;;;;;;-1:-1:-1;7144:53:127;;;;;:::i;:::-;;;;;;;;;;;;;;6919:42;;;;;;;;;;-1:-1:-1;6919:42:127;;;;-1:-1:-1;;;;;6919:42:127;;;12682:128;;;;;;;;;;-1:-1:-1;12682:128:127;;;;;:::i;:::-;;:::i;39187:137::-;;;;;;;;;;-1:-1:-1;39187:137:127;;;;;:::i;:::-;;:::i;6298:23::-;;;;;;;;;;;;;;;;13173:958;;;;;;;;;;-1:-1:-1;13173:958:127;;;;;:::i;:::-;;:::i;6467:38::-;;;;;;;;;;;;;;;;12336:253;;;;;;;;;;;;;:::i;6394:26::-;;;;;;;;;;;;;;;;20535:735;;;;;;;;;;-1:-1:-1;20535:735:127;;;;;:::i;:::-;;:::i;7235:57::-;;;;;;;;;;-1:-1:-1;7235:57:127;;;;;:::i;:::-;;:::i;39057:124::-;;;;;;;;;;-1:-1:-1;39057:124:127;;;;;:::i;:::-;;:::i;4412:75:9:-;;;;;;;;;;;;4445:42;4412:75;;6327:21:127;;;;;;;;;;;;;;;;6835:51;;;;;;;;;;-1:-1:-1;6835:51:127;;;;;;25319:198;;;;;;;;;;-1:-1:-1;25319:198:127;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6426:35::-;;;;;;;;;;;;;;;;21909:288;;;;;;;;;;-1:-1:-1;21909:288:127;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22892:86::-;;;;;;;;;;-1:-1:-1;22892:86:127;;;;;:::i;:::-;;:::i;26114:127::-;;;;;;;;;;-1:-1:-1;26114:127:127;;;;;:::i;:::-;-1:-1:-1;;;;;26208:26:127;26182:7;26208:26;;;:18;:26;;;;;;;26114:127;17368:110;;;;;;;;;;-1:-1:-1;17460:11:127;;;;;;;17368:110;;24275:1038;;;;;;;;;;-1:-1:-1;24275:1038:127;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;37102:112::-;;;;;;;;;;-1:-1:-1;37187:20:127;;37102:112;;25900:145;;;;;;;;;;-1:-1:-1;25900:145:127;;;;;:::i;:::-;25977:7;26003:22;;;:9;:22;;;;;:35;;;;25900:145;7566:101:11;;;;;;;;;;-1:-1:-1;7622:4:11;14479:10;;;7566:101;;25718:176:127;;;;;;;;;;-1:-1:-1;25718:176:127;;;;;:::i;:::-;;:::i;17594:226::-;;;;;;;;;;-1:-1:-1;17594:226:127;;;;;:::i;:::-;;:::i;7823:146:11:-;;;;;;;;;;-1:-1:-1;7823:146:11;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7574:1028:127:-;;;;;;;;;;-1:-1:-1;7574:1028:127;;;;;:::i;:::-;;:::i;10092:220:11:-;;;;;;:::i;:::-;;:::i;8816:197::-;;;;;;;;;;-1:-1:-1;8816:197:11;;;;;:::i;:::-;;:::i;39491:143:127:-;;;;;;;;;;-1:-1:-1;39491:143:127;;;;;:::i;:::-;;:::i;7028:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7028:60:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9003:202::-;9088:4;9111:47;;;9126:32;9111:47;;:87;;-1:-1:-1;952:25:84;937:40;;;;9162:36:127;9104:94;9003:202;-1:-1:-1;;9003:202:127:o;39640:219::-;39723:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39745:17:127::1;:57:::0;;-1:-1:-1;;39745:57:127::1;-1:-1:-1::0;;;;;39745:57:127;::::1;::::0;;::::1;::::0;;;39817:35:::1;::::0;7473:74:144;;;39817:35:127::1;::::0;7461:2:144;7446:18;39817:35:127::1;;;;;;;;39640:219:::0;;:::o;10705:325:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10924:42:::2;10936:13;10951:5;10958:7;10924:11;:42::i;:::-;10705:325:::0;;;:::o;39330:155:127:-;39395:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39417:8:127::1;:20:::0;;;39452:26:::1;::::0;7277:25:144;;;39452:26:127::1;::::0;7265:2:144;7250:18;39452:26:127::1;7131:177:144::0;38531:520:127;38601:7;38663:21;;;:9;:21;;;;;38699:19;;:33;;38695:100;;38755:29;;-1:-1:-1;;;38755:29:127;;;;;7277:25:144;;;7250:18;;38755:29:127;;;;;;;;38695:100;38836:36;38809:23;;;;;;:63;;;;;;;;:::i;:::-;;38805:130;;38895:29;;-1:-1:-1;;;38895:29:127;;;;;7277:25:144;;;7250:18;;38895:29:127;7131:177:144;38805:130:127;38945:59;38972:8;38982;:21;;;38945:26;:59::i;:::-;39021:23;;;;38531:520;-1:-1:-1;;38531:520:127:o;12595:81::-;12640:29;12658:10;12640:17;:29::i;:::-;12595:81::o;9429:344:11:-;9584:19;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;9683:34:::2;9702:5;9709:7;9683:18;:34::i;:::-;9669:48:::0;9429:344;-1:-1:-1;;;9429:344:11:o;39865:237:127:-;39950:10;5954:30:11;5976:7;5954:21;:30::i;:::-;40003:19:127::1;::::0;39977:67:::1;::::0;;16754:25:144;;;16810:2;16795:18;;16788:34;;;39977:67:127::1;::::0;16727:18:144;39977:67:127::1;;;;;;;-1:-1:-1::0;40054:19:127::1;:41:::0;39865:237::o;14137:681::-;14221:7;14240:23;:21;:23::i;:::-;14319:24;14376:36;14361:11;;;;;;;:51;;;;;;;;:::i;:::-;;:103;;;-1:-1:-1;14431:33:127;14416:11;;;;;;;:48;;;;;;;;:::i;:::-;;14361:103;14357:298;;;-1:-1:-1;14528:16:127;14357:298;;;14595:49;14618:7;14627:16;14595:22;:49::i;:::-;14576:68;;14357:298;14688:16;14664:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;14719:59:127;;;-1:-1:-1;;;;;17375:55:144;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14719:59:127;;17345:2:144;17330:18;14719:59:127;;;;;;;14795:16;14137:681;-1:-1:-1;;;14137:681:127:o;32689:1145::-;32823:7;32846:9;32858:11;32846:23;;33184:17;33204:27;5834:8;33219:3;33210:5;;:12;;33209:18;;;;:::i;:::-;33229:1;33204:4;:27::i;:::-;33184:47;;33824:3;5977:34;33801:5;;5834:8;33797:9;;;;:::i;:::-;33772:19;33782:9;-1:-1:-1;;;33772:19:127;:::i;:::-;33754:14;5834:8;33754:10;:14;:::i;:::-;:38;;;;:::i;:::-;33753:54;;;;:::i;:::-;33727:21;33739:9;33727;:21;:::i;:::-;33726:82;;;;:::i;:::-;33725:94;;;;:::i;:::-;33724:103;;;32689:1145;-1:-1:-1;;;;;;32689:1145:127:o;12395:145:11:-;12481:4;12504:29;12522:10;12504:17;:29::i;34415:1482:127:-;34490:18;34658:1;34644:10;;:15;34640:66;;34682:13;;;;;;;;;;;;;;34640:66;35146:33;35162:16;35146:15;:33::i;:::-;35142:91;;;35202:20;;-1:-1:-1;;;35202:20:127;;;;;;;;;;;35142:91;35455:10;;35381:13;;35425:26;:16;35444:7;35425:26;:::i;:::-;35424:41;;;;:::i;:::-;5834:8;35398;;35409:7;35398:18;;;;:::i;:::-;35397:24;;;;:::i;:::-;:68;;;;:::i;:::-;35381:84;;35618:2;35576:28;37187:20;;;37102:112;35576:28;35566:5;;35562:9;;5834:8;35562:9;:::i;:::-;5834:8;35549:2;35531:13;35539:5;;35531:13;:::i;:::-;35530:21;;5834:8;35517:3;35507:6;;:13;;35506:19;;;;:::i;:::-;35505:47;;;;:::i;:::-;35504:53;;;;:::i;:::-;35503:69;;;;:::i;:::-;35502:102;;;;:::i;:::-;35488:132;;35475:145;;35836:19;;35823:10;:32;:67;;35871:19;;35823:67;;;-1:-1:-1;35858:10:127;35810:80;-1:-1:-1;34415:1482:127:o;12682:128::-;12744:23;:21;:23::i;:::-;12777:26;12795:7;12777:17;:26::i;:::-;12682:128;:::o;39187:137::-;39246:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39268:5:127::1;:14:::0;;;39297:20:::1;::::0;7277:25:144;;;39297:20:127::1;::::0;7265:2:144;7250:18;39297:20:127::1;7131:177:144::0;13173:958:127;13255:7;13319:23;:21;:23::i;:::-;13352:24;13409:36;13394:11;;;;;;;:51;;;;;;;;:::i;:::-;;13390:441;;13503:14;13480:38;13461:57;;13390:441;;;13554:33;13539:11;;;;;;;:48;;;;;;;;:::i;:::-;;13535:296;;13622:44;13642:7;13651:14;13622:19;:44::i;13535:296::-;13702:36;13687:11;;;;;;;:51;;;;;;;;:::i;:::-;;13683:148;;13773:47;13796:7;13805:14;13773:22;:47::i;:::-;13754:66;;13683:148;13859:17;;:69;;-1:-1:-1;;;13859:69:127;;-1:-1:-1;;;;;18552:15:144;;;13859:69:127;;;18534:34:144;13922:4:127;18584:18:144;;;18577:43;13840:16:127;;13859:17;;:45;;18446:18:144;;13859:69:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13840:88;;13942:11;13938:82;;;13993:16;13969:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;13938:82:127;14034:57;;;-1:-1:-1;;;;;17375:55:144;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14034:57:127;;17345:2:144;17330:18;14034:57:127;;;;;;;-1:-1:-1;14108:16:127;13173:958;-1:-1:-1;;;13173:958:127:o;12336:253::-;12418:17;;:65;;;;;12398:10;12418:65;;;18534:34:144;;;12477:4:127;18584:18:144;;;18577:43;12398:10:127;-1:-1:-1;;;;;12418:17:127;;:42;;18446:18:144;;12418:65:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12517:17:127;;:65;;-1:-1:-1;;;12517:65:127;;-1:-1:-1;;;;;18552:15:144;;;12517:65:127;;;18534:34:144;12576:4:127;18584:18:144;;;18577:43;12517:17:127;;;;-1:-1:-1;12517:42:127;;-1:-1:-1;18446:18:144;;12517:65:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12493:20;;:89;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12336:253:127:o;20535:735::-;20604:18;20677:21;;;:9;:21;;;;;20887;;;;20604:18;;;;20843:66;;20677:21;;20843:33;:66::i;:::-;20783:126;;;;20924:14;20942:1;20924:19;:39;;;;-1:-1:-1;20947:16:127;;20924:39;20920:110;;;20996:8;:23;;;20979:40;;20920:110;21039:17;21059:44;21078:8;:24;;;21059:18;:44::i;:::-;21236:27;;;;;20535:735;-1:-1:-1;;;;;20535:735:127:o;7235:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39057:124::-;39120:7;39167:5;;5834:8;39163:9;;;;:::i;:::-;39148:10;5834:8;39148:6;:10;:::i;:::-;39147:26;;;;:::i;25319:198::-;-1:-1:-1;;;;;;;;;;;;;;;;;25411:40:127;25454:9;:22;25464:11;25454:22;;;;;;;;;;;25411:65;;25493:8;:17;;25486:24;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25319:198;;;:::o;21909:288::-;21995:22;22079:16;;-1:-1:-1;;;22079:16:127;;;;;;;;;;;22892:86;22948:23;22963:7;22948:14;:23::i;24275:1038::-;24377:17;24408:19;24441:22;24477:23;24514:20;24548:44;24606:17;24637:22;24673:17;24704:25;24754:40;24797:9;:22;24807:11;24797:22;;;;;;;;;;;24754:65;;24842:8;:24;;;24870:1;24842:29;:80;;24878:44;24897:8;:24;;;24878:18;:44::i;:::-;24842:80;;;24874:1;24842:80;24830:92;;24953:8;:18;;;;;;;;;;-1:-1:-1;;;;;24953:18:127;24985:8;:20;;;;;;;;;;-1:-1:-1;;;;;24985:20:127;25019:8;:23;;;;;;;;;;-1:-1:-1;;;;;25019:23:127;25056:8;:24;;;25094:8;:21;;;25129:8;:23;;;;;;;;;;;;25166:8;:18;;;25198:8;:23;;;25235:9;25258:8;:26;;:38;25285:10;-1:-1:-1;;;;;25258:38:127;-1:-1:-1;;;;;25258:38:127;;;;;;;;;;;;;24932:374;;;;;;;;;;;;;;;;;;;;;24275:1038;;;;;;;;;;;:::o;25718:176::-;25809:7;26374:22;;;:9;:22;;;;;;;;-1:-1:-1;;;;;26374:48:127;;;;:40;;:48;;;;;;25835:52;26247:182;17594:226;17737:16;;-1:-1:-1;;;17737:16:127;;;;;;;;;;;7823:146:11;7904:6;7929:33;7949:12;7929:19;:33::i;7574:1028:127:-;7650:28;7670:7;7650:19;:28::i;:::-;7688:41;7743:5;7732:52;;;;;;;;;;;;:::i;:::-;8139:20;;7688:96;;-1:-1:-1;;;;;;8139:34:127;8135:94;;8196:22;;-1:-1:-1;;;8196:22:127;;;;;;;;;;;8135:94;8277:20;;8239:17;:59;;-1:-1:-1;;8239:59:127;-1:-1:-1;;;;;8239:59:127;;;;;;;;;8316:8;;;;8308:5;:16;8345:11;;;;8334:8;:22;8375:9;;;;8366:6;:18;8409:15;;;;8394:12;:30;;-1:-1:-1;;8394:30:127;-1:-1:-1;8409:15:127;8394:30;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8448:14:127;;;;8434:11;:28;;-1:-1:-1;;8434:28:127;;8448:14;8434:28;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8486:14:127;;;;8472:28;:11;:28;8532:21;;;;8510:19;:43;8569:26;;;;;;8583:7;;8486:2;;8569:26;:::i;:::-;;;;;;;;7640:962;7574:1028;;:::o;10092:220:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10240:25:::2;10250:5;10257:7;10240:9;:25::i;:::-;10092:220:::0;;:::o;8816:197::-;5660:16;:14;:16::i;:::-;8956:7:::1;8942:10;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8973:33:11::1;::::0;-1:-1:-1;8998:7:11;8973:24:::1;:33::i;39491:143:127:-:0;39552:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39574:6:127::1;:16:::0;;;39605:22:::1;::::0;7277:25:144;;;39605:22:127::1;::::0;7265:2:144;7250:18;39605:22:127::1;7131:177:144::0;13122:142:11;13218:6;;13199:35;;;;;;;;22607:25:144;;;;-1:-1:-1;;;;;22668:55:144;;;22648:18;;;22641:83;13199:4:11;:18;;;;22580::144;;13199:35:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13194:63;;13243:14;;-1:-1:-1;;;13243:14:11;;;;;;;;;;;12814:111;12868:10;-1:-1:-1;;;;;12890:4:11;12868:27;;12864:54;;12904:14;;-1:-1:-1;;;12904:14:11;;;;;;;;;;;13771:105;13832:6;;13842:1;13832:11;13828:41;;13852:17;;;;;;;;;;;;;;18773:1756:127;18968:1;18952:5;:12;:17;18948:76;;18992:21;;;;;;;;;;;;;;18948:76;19034:18;19066:5;19055:28;;;;;;;;;;;;:::i;:::-;19034:49;;19098:10;19112:1;19098:15;19094:77;;19136:24;;;;;;;;;;;;;;19094:77;19180:40;19223:21;;;:9;:21;;;;;19275:35;19259:12;;;;:51;;;;;;;;:::i;:::-;;19255:1208;;19330:19;;:33;;19326:108;;19390:29;;-1:-1:-1;;;19390:29:127;;;;;7277:25:144;;;7250:18;;19390:29:127;7131:177:144;19326:108:127;19479:10;;19452:8;:24;;;:37;19448:152;;;19548:24;;;;19574:10;;19516:69;;;;;;;;22937:25:144;;;22978:18;;;22971:34;;;;23021:18;;;23014:34;22910:18;;19516:69:127;22735:319:144;19448:152:127;19645:36;19618:23;;;;;;:63;;;;;;;;:::i;:::-;;19614:138;;19708:29;;-1:-1:-1;;;19708:29:127;;;;;7277:25:144;;;7250:18;;19708:29:127;7131:177:144;19614:138:127;19766:22;19791:36;19816:10;19791:24;:36::i;:::-;19766:61;;19841:17;19861:44;19880:8;:24;;;19861:18;:44::i;:::-;19841:64;;19941:9;19924:14;:26;:58;;;;;19981:1;19954:8;:24;;;:28;19924:58;19920:137;;;20009:33;;;;;;;;;;;;;;19920:137;20109:6;;20096:20;;;;;20071:22;;-1:-1:-1;;;;;20096:4:127;:12;;;;:20;;;;7277:25:144;;;7265:2;7250:18;;7131:177;20096:20:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20096:20:127;;;;;;;;;;;;:::i;:::-;20071:45;;20145:8;:24;;;20131:10;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;20207:10:127;;;;20219:20;;;;;20241:24;;;20191:75;;20207:10;-1:-1:-1;;;;;20219:20:127;;20191:15;:75::i;:::-;20297:23;;;:64;;-1:-1:-1;;20297:64:127;20323:38;20297:64;;;;;;20405:20;;;20297:64;20427:24;;;20381:71;;;25025:25:144;;;-1:-1:-1;;;;;20405:20:127;;;25081:2:144;25066:18;;25059:83;25158:18;;25151:34;20381:71:127;;25013:2:144;24998:18;20381:71:127;;;;;;;19312:1151;;;19255:1208;18859:1670;;18773:1756;;;:::o;37404:396::-;37523:18;37543:19;37566:56;37600:9;37611:10;37566:33;:56::i;:::-;37522:100;;;;37636:10;37650:1;37636:15;:35;;;;-1:-1:-1;37655:16:127;;37636:35;37632:72;;;37687:7;;37404:396;;:::o;37632:72::-;37713:19;;;:33;37756:24;;;;:37;;;;-1:-1:-1;37404:396:127:o;12816:351::-;12903:17;;:66;;-1:-1:-1;;;12903:66:127;;-1:-1:-1;;;;;18552:15:144;;;12903:66:127;;;18534:34:144;12963:4:127;18584:18:144;;;18577:43;12903:17:127;;;;:42;;18446:18:144;;12903:66:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12879:20;;:90;;;;;;;:::i;:::-;;;;-1:-1:-1;;12979:17:127;;:68;;;;;-1:-1:-1;;;;;18552:15:144;;;12979:68:127;;;18534:34:144;13041:4:127;18584:18:144;;;18577:43;12979:17:127;;;;:44;;18446:18:144;;12979:68:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13102:17;13111:7;13102:8;:17::i;:::-;13134:26;;-1:-1:-1;;;;;7491:55:144;;7473:74;;13134:26:127;;7461:2:144;7446:18;13134:26:127;;;;;;;;12816:351;:::o;10385:1945::-;10477:7;10556:45;10615:5;10604:50;;;;;;;;;;;;:::i;:::-;10769:15;;10556:98;;-1:-1:-1;10769:15:127;:20;10765:78;;10812:20;;;;;;;;;;;;;;10765:78;10935:35;10919:12;;;;:51;;;;;;;;:::i;:::-;;10915:721;;10986:39;11004:8;:20;;;10986:17;:39::i;:::-;11091:23;;;;-1:-1:-1;;;;;11091:37:127;11087:102;;11155:19;;;;;;;;;;;;;;11087:102;11202:17;11222:4;-1:-1:-1;;;;;11222:12:127;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11222:22:127;;11245:6;;11222:30;;;;;;;;;;;;;7277:25:144;;7265:2;7250:18;;7131:177;11222:30:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11222:30:127;;;;;;;;;;;;:::i;:::-;:36;;;11202:56;;11303:9;-1:-1:-1;;;;;11276:36:127;:8;:23;;;-1:-1:-1;;;;;11276:36:127;;11272:234;;11474:17;;;;;;;;;;;;;;11272:234;11523:41;11539:8;:24;;;11523:15;:41::i;:::-;11519:107;;;11591:20;;-1:-1:-1;;;11591:20:127;;;;;;;;;;;11519:107;10972:664;10915:721;11645:18;11668:15;;11666:17;;;;;:::i;:::-;;;;;-1:-1:-1;11693:33:127;11729:21;;;:9;:21;;;;;;;;11761:25;;;11796:11;;;:21;;-1:-1:-1;;;;;11796:21:127;;;-1:-1:-1;;11796:21:127;;;;;;;11843:20;;;;11827:13;;;:36;;;;;;;;;;;;;;11892:23;;;;11873:16;;;:42;;;;;;;;;;;11945:24;;;;-1:-1:-1;11925:17:127;;;:44;;;;12030:16;;;:55;;-1:-1:-1;;12030:55:127;;;;;;12109:12;12095:11;;;:26;-1:-1:-1;12131:16:127;;:20;;;;12210:17;;;;12197:30;;:10;;;:30;;;;;;;11666:17;;-1:-1:-1;11729:21:127;;12197:30;;;;;;;;:::i;:::-;-1:-1:-1;;12259:6:127;;12243:35;;;16754:25:144;;;16810:2;16795:18;;16788:34;;;12243:35:127;;-1:-1:-1;16727:18:144;12243:35:127;;;;;;;-1:-1:-1;12311:10:127;10385:1945;-1:-1:-1;;;;10385:1945:127:o;9759:162::-;9841:17;;-1:-1:-1;;;;;9841:17:127;9819:10;:40;9815:100;;9882:22;;;;;;;;;;;;;;16455:802;16620:17;;:31;;;-1:-1:-1;;;16620:31:127;;;;16553:7;;16590:2;;-1:-1:-1;;;;;16620:17:127;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16606:56:127;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16606:58:127;;;;;;;;-1:-1:-1;;16606:58:127;;;;;;;;;;;;:::i;:::-;;;16602:208;;16763:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;16602:208;;;16714:17;;;-1:-1:-1;16602:208:127;16819:49;;;;;;;;;;;;;;;;;;16851:16;16819:11;:49::i;:::-;16902:17;;:48;;-1:-1:-1;;;16902:48:127;;-1:-1:-1;;;;;7491:55:144;;;16902:48:127;;;7473:74:144;16878:21:127;;16953:16;;16902:17;;;:39;;7446:18:144;;16902:48:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;;;;:::i;:::-;16878:91;;16979:43;;;;;;;;;;;;;;;;;;17008:13;16979:11;:43::i;:::-;17032:22;17057:40;17083:13;17089:7;17083:2;:13;:::i;:::-;17067:29;;:13;:29;:::i;:::-;17057:9;:40::i;:::-;17134:17;;:66;;-1:-1:-1;;;17134:66:127;;-1:-1:-1;;;;;18552:15:144;;;17134:66:127;;;18534:34:144;17194:4:127;18584:18:144;;;18577:43;17032:65:127;;-1:-1:-1;17107:24:127;;17032:65;;17134:17;;:42;;18446:18:144;;17134:66:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:83;;;;:::i;:::-;17107:110;16455:802;-1:-1:-1;;;;;;;16455:802:127:o;36649:447::-;36710:15;-1:-1:-1;;;36745:2:127;:12;36737:53;;;;-1:-1:-1;;;36737:53:127;;30927:2:144;36737:53:127;;;30909:21:144;30966:2;30946:18;;;30939:30;31005;30985:18;;;30978:58;31053:18;;36737:53:127;30725:352:144;36737:53:127;-1:-1:-1;;;;36812:2:127;36836;36875:215;36882:5;;36875:215;;36907:1;36911;36907:5;36916:1;36907:10;36903:177;;36941:10;36946:1;36949;36941:4;:10::i;:::-;36937:14;-1:-1:-1;36975:1:127;36969:7;36875:215;;36903:177;37025:16;37030:7;37039:1;37025:4;:16::i;:::-;37015:26;-1:-1:-1;37059:6:127;37064:1;37059:6;;:::i;:::-;;;36875:215;;;36727:369;;36649:447;;;;:::o;22695:191::-;22774:4;-1:-1:-1;;;;;22840:24:127;;;:39;;22875:4;22840:39;;;22867:5;22833:46;22695:191;-1:-1:-1;;22695:191:127:o;26777:174::-;26851:19;26924:20;5834:8;26924:16;:20;:::i;:::-;26910:10;;26899:8;;:21;;;;:::i;:::-;:45;;;26777:174;-1:-1:-1;;26777:174:127:o;14956:615::-;15049:7;15068:24;15095:14;15068:41;;15119:51;;;;;;;;;;;;;;;;;;15153:16;15119:11;:51::i;:::-;15202:17;;:66;;-1:-1:-1;;;15202:66:127;;-1:-1:-1;;;;;18552:15:144;;;15202:66:127;;;18534:34:144;15262:4:127;18584:18:144;;;18577:43;15180:19:127;;15202:17;;:42;;18446:18:144;;15202:66:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15180:88;;15278:39;;;;;;;;;;;;;;;;;;15305:11;15278;:39::i;:::-;15364:11;:21;15331:30;15345:16;15331:11;:30;:::i;:::-;:54;15327:139;;;15420:11;:21;:35;;15444:11;;15420:35;:::i;:::-;15401:54;;15327:139;15475:55;;;;;;;;;;;;;;;;;;15513:16;15475:11;:55::i;:::-;-1:-1:-1;15548:16:127;14956:615;-1:-1:-1;;;14956:615:127:o;15577:730::-;15713:17;;:48;;-1:-1:-1;;;15713:48:127;;-1:-1:-1;;;;;7491:55:144;;;15713:48:127;;;7473:74:144;15673:7:127;;;;15764:14;;15713:17;;;;:39;;7446:18:144;;15713:48:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;:::i;:::-;15837:17;;:31;;;-1:-1:-1;;;15837:31:127;;;;15692:86;;-1:-1:-1;15807:2:127;;-1:-1:-1;;;;;15837:17:127;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15823:56:127;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15823:58:127;;;;;;;;-1:-1:-1;;15823:58:127;;;;;;;;;;;;:::i;:::-;;;15819:208;;15980:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;15819:208;;;15931:17;;;-1:-1:-1;15819:208:127;16036:22;16061:37;16084:13;16090:7;16084:2;:13;:::i;:::-;16071:26;;:10;:26;:::i;16061:37::-;16132:17;;:66;;-1:-1:-1;;;16132:66:127;;-1:-1:-1;;;;;18552:15:144;;;16132:66:127;;;18534:34:144;16192:4:127;18584:18:144;;;18577:43;16036:62:127;;-1:-1:-1;16108:21:127;;16132:17;;;;:42;;18446:18:144;;16132:66:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16108:90;-1:-1:-1;16209:24:127;16236:30;16108:90;16236:14;:30;:::i;:::-;16209:57;15577:730;-1:-1:-1;;;;;;;;15577:730:127:o;37806:719::-;37959:18;37979:19;38028:12;38014:26;;38080:11;38057:9;:19;;;:34;;38050:42;;;;:::i;:::-;38129:11;38106:9;:19;;;:34;38102:173;;-1:-1:-1;38230:1:127;;-1:-1:-1;38230:1:127;38222:13;;38102:173;38341:177;38388:9;:19;;;38374:11;:33;;;;:::i;:::-;38460:9;:24;;;38498:10;38341:19;:177::i;:::-;38328:190;;37806:719;;;;;;:::o;14116:118:11:-;14173:10;:20;;-1:-1:-1;;14173:20:11;;;;;;;;;;14208:19;;2866:41:144;;;14208:19:11;;2854:2:144;2839:18;14208:19:11;2726:187:144;21560:220:127;21643:6;-1:-1:-1;;;;;21711:26:127;;;:62;;21758:15;21711:62;;;21740:15;21704:69;21560:220;-1:-1:-1;;21560:220:127:o;8269:350:11:-;5660:16;:14;:16::i;:::-;8428:6:::1;::::0;:11;8424:45:::1;;8448:21;;;;;;;;;;;;;;8424:45;8556:7;8567:1;8556:12:::0;8552:34:::1;;8577:9;;;;;;;;;;;;;;8552:34;8596:6;:16:::0;8269:350::o;17966:551:127:-;18050:28;18070:7;18050:19;:28::i;:::-;18165:17;;:69;;-1:-1:-1;;;18165:69:127;;-1:-1:-1;;;;;18552:15:144;;;18165:69:127;;;18534:34:144;18228:4:127;18584:18:144;;;18577:43;18134:28:127;;18165:17;;:45;;18446:18:144;;18165:69:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18134:100;;18249:23;18244:78;;18295:16;;;;;;;;;;;;;;18244:78;18331:42;18387:5;18376:53;;;;;;;;;;;;:::i;:::-;18331:98;;18439:37;18464:7;18473:2;18439:24;:37::i;:::-;18486:24;18498:7;18507:2;18486:11;:24::i;:::-;18040:477;;17966:551;;:::o;22473:127::-;22565:28;;7277:25:144;;;22565:28:127;;7265:2:144;7250:18;22565:28:127;7131:177:144;6721:269:10;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;22984:729:127:-;-1:-1:-1;;;;;23118:29:127;;23086;23118;;;:20;:29;;;;;;;;23086:61;;;;;;;;;;;;;;;;;;;23118:29;;23086:61;;;23118:29;23086:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23162:9;23157:550;23181:12;:19;23177:1;:23;23157:550;;;23221:18;23242:12;23255:1;23242:15;;;;;;;;:::i;:::-;;;;;;;23221:36;;23271:40;23314:9;:21;23324:10;23314:21;;;;;;;;;;;23271:64;;23353:26;23368:10;23353:14;:26::i;:::-;23349:348;;;-1:-1:-1;;;;;23422:35:127;;23399:20;23422:35;;;:26;;;:35;;;;;;;23475:39;;;;23532:21;;;:37;;23422:35;;;;23532:37;;23422:35;;23532:37;:::i;:::-;;;;;;;;23602:12;23587:11;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;23632:50:127;;-1:-1:-1;23659:8:127;23669:12;23632:26;:50::i;:::-;23381:316;23349:348;23207:500;;23202:3;;;;;:::i;:::-;;;;23157:550;;9927:132;-1:-1:-1;;;;;10000:22:127;;9996:56;;10031:21;;;;;;;;;;;;;;5630:121:36;5685:59;5740:2;5701:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5701:42:36;;;;;;;;;;;;;;;;;;;;5685:15;:59::i;6548:139::-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:36;;;;;;;;;;;;;;;;;;;;6612:15;:68::i;6530:1642:87:-;6578:7;6601:1;6606;6601:6;6597:45;;-1:-1:-1;6630:1:87;;6530:1642;-1:-1:-1;6530:1642:87:o;6597:45::-;7321:14;7355:1;7344:7;7349:1;7344:4;:7::i;:::-;:12;;7338:1;:19;;7321:36;;7816:1;7805:6;7801:1;:10;;;;;:::i;:::-;;7792:6;:19;7791:26;;7782:35;;7865:1;7854:6;7850:1;:10;;;;;:::i;:::-;;7841:6;:19;7840:26;;7831:35;;7914:1;7903:6;7899:1;:10;;;;;:::i;:::-;;7890:6;:19;7889:26;;7880:35;;7963:1;7952:6;7948:1;:10;;;;;:::i;:::-;;7939:6;:19;7938:26;;7929:35;;8012:1;8001:6;7997:1;:10;;;;;:::i;:::-;;7988:6;:19;7987:26;;7978:35;;8061:1;8050:6;8046:1;:10;;;;;:::i;:::-;;8037:6;:19;8036:26;;8027:35;;8110:1;8099:6;8095:1;:10;;;;;:::i;:::-;;8086:6;:19;8085:26;;8076:35;;8132:23;8136:6;8148;8144:1;:10;;;;;:::i;:::-;;8132:3;:23::i;36158:269:127:-;36219:15;-1:-1:-1;;;36254:2:127;:13;;36246:66;;;;-1:-1:-1;;;36246:66:127;;33373:2:144;36246:66:127;;;33355:21:144;33412:2;33392:18;;;33385:30;33451:34;33431:18;;;33424:62;33522:10;33502:18;;;33495:38;33550:19;;36246:66:127;33171:404:144;36246:66:127;-1:-1:-1;;;36330:2:127;:12;36322:53;;;;-1:-1:-1;;;36322:53:127;;33782:2:144;36322:53:127;;;33764:21:144;33821:2;33801:18;;;33794:30;33860;33840:18;;;33833:58;33908:18;;36322:53:127;33580:352:144;36322:53:127;36417:3;5977:34;36394:7;36399:2;36394;:7;:::i;:::-;36393:19;;;;:::i;:::-;36392:28;;;36158:269;-1:-1:-1;;;36158:269:127:o;9376:377::-;-1:-1:-1;;;;;9449:21:127;;9445:77;;9493:18;;;;;;;;;;;;;;9445:77;9543:17;;-1:-1:-1;;;;;9543:17:127;9531:100;;9598:22;;-1:-1:-1;;;9598:22:127;;;;;;;;;;;9531:100;9645:17;;:35;;;;;-1:-1:-1;;;;;7491:55:144;;;9645:35:127;;;7473:74:144;9645:17:127;;;;:26;;7446:18:144;;9645:35:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9640:93;;9703:19;;;;;;;;;;;;;;26957:1548;27097:22;27138:9;27133:630;27157:16;:23;27153:1;:27;27133:630;;;27260:16;27277:1;27260:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27294:1;27260:35;27256:187;27420:8;27256:187;27456:18;27477:16;27494:1;27477:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27456:51;;27526:26;27541:10;27526:14;:26::i;:::-;27521:167;;27579:29;;-1:-1:-1;;;27579:29:127;;;;;7277:25:144;;;7250:18;;27579:29:127;7131:177:144;27521:167:127;27720:16;27737:1;27720:19;;;;;;;;:::i;:::-;;;;;;;:32;;;27701:51;;;;;:::i;:::-;;;27187:576;27133:630;27182:3;;;;:::i;:::-;;;;27133:630;;;-1:-1:-1;;;;;;26208:26:127;;27859:29;26208:26;;;:18;:26;;;;;;27891:60;;27935:15;27891:11;:60::i;:::-;28062:17;;:66;;-1:-1:-1;;;28062:66:127;;-1:-1:-1;;;;;18552:15:144;;;28062:66:127;;;18534:34:144;28122:4:127;18584:18:144;;;18577:43;27859:92:127;;-1:-1:-1;28033:26:127;;28062:17;;;;:42;;18446:18:144;;28062:66:127;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28033:95;;28318:18;28294:21;:42;28290:147;;;28359:67;;;;;;;;16754:25:144;;;16795:18;;;16788:34;;;16727:18;;28359:67:127;16580:248:144;28290:147:127;-1:-1:-1;;;;;;28447:27:127;;;;;;;:18;:27;;;;;:51;;;;-1:-1:-1;;26957:1548:127:o;28511:3479::-;28626:29;28670:9;28665:3319;28689:16;:23;28685:1;:27;28665:3319;;;28733:18;28754:16;28771:1;28754:19;;;;;;;;:::i;:::-;;;;;;;:30;;;28733:51;;28857:12;:19;28880:1;28857:24;28853:920;;28916:16;;;28930:1;28916:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28916:16:127;28901:31;;28968:10;28950:12;28963:1;28950:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;28853:920;;;29027:10;29068:9;29063:318;29087:12;:19;29083:1;:23;29063:318;;;29183:10;29164:12;29177:1;29164:15;;;;;;;;:::i;:::-;;;;;;;:29;29160:203;;29266:40;;;;;;;;16754:25:144;;;16795:18;;;16788:34;;;29229:4:127;;-1:-1:-1;16727:18:144;;29266:40:127;16580:248:144;29160:203:127;29108:3;;;;:::i;:::-;;;;29063:318;;;;29403:5;29398:361;;29432:21;29470:12;:19;29492:1;29470:23;;;;:::i;:::-;29456:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29456:38:127;;29432:62;;29521:9;29516:124;29540:12;:19;29536:1;:23;29516:124;;;29602:12;29615:1;29602:15;;;;;;;;:::i;:::-;;;;;;;29592:4;29597:1;29592:7;;;;;;;;:::i;:::-;;;;;;;;;;:25;29561:3;;;;:::i;:::-;;;;29516:124;;;;29689:10;29661:4;29666:12;:19;29661:25;;;;;;;;:::i;:::-;;;;;;;;;;:38;29736:4;-1:-1:-1;29398:361:127;29009:764;28853:920;29786:12;29801:16;29818:1;29801:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:32;;;29848:40;29891:21;;;:9;:21;;;;;;-1:-1:-1;;;;;30045:35:127;;;;:26;;;:35;;;;;;29801:32;;-1:-1:-1;30268:40:127;30045:35;29801:32;30268:11;:40::i;:::-;-1:-1:-1;;;;;30443:35:127;;;;;;:26;;;:35;;;;;:50;;;30245:63;;-1:-1:-1;30443:35:127;30765:246;-1:-1:-1;;;;;30789:29:127;;;;;;:20;:29;;;;;:36;30785:40;;30765:246;;;30890:19;;-1:-1:-1;;;;;30854:29:127;;30890:19;30854:29;;;:20;:29;;;;;:32;;30884:1;;30854:32;;;;;;:::i;:::-;;;;;;;;;:55;30850:147;;30947:4;30933:18;;30973:5;;30850:147;30827:3;;;;:::i;:::-;;;;30765:246;;;;31029:11;31024:106;;-1:-1:-1;;;;;31060:29:127;;;;;;:20;:29;;;;;;;31095:19;;31060:55;;;;;;;;;;;;;;;;;;31024:106;31309:12;31285:20;:36;31281:370;;31356:35;31371:20;31356:12;:35;:::i;:::-;31341:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31434:35:127;;-1:-1:-1;31449:20:127;31434:12;:35;:::i;:::-;31409:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;31281:370:127;;-1:-1:-1;31281:370:127;;31523:35;31546:12;31523:20;:35;:::i;:::-;31508:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31601:35:127;;-1:-1:-1;31624:12:127;31601:20;:35;:::i;:::-;31576:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;31281:370:127;31668:8;:18;;;31690:1;31668:23;31664:310;;31732:12;31711:18;;;:33;31664:310;;;31783:58;31810:8;31820:20;31783:26;:58::i;:::-;31912:21;;;;31935:23;;;;31864:95;;;-1:-1:-1;;;;;34435:55:144;;34417:74;;34522:2;34507:18;;34500:34;;;34550:18;;;34543:34;;;34608:2;34593:18;;34586:34;;;;34651:3;34636:19;;34629:35;31864:95:127;;34404:3:144;34389:19;31864:95:127;;;;;;;31664:310;28719:3265;;;;;;28714:3;;;;;:::i;:::-;;;;28665:3319;;2455:490:14;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;26586:185:127:-;26654:4;26677:22;;;:9;:22;;;;;:33;:37;;;;:87;;-1:-1:-1;;26762:1:127;26718:22;;;:9;:22;;;;;:32;;;-1:-1:-1;;;;;26718:32:127;:46;;;26586:185::o;181:376:36:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;8633:983:87:-;8685:7;;8769:3;8760:12;;;:16;8756:99;;8806:3;8796:13;;;;8827;8756:99;8881:2;8872:11;;;:15;8868:96;;8917:2;8907:12;;;;8937;8868:96;8990:2;8981:11;;;:15;8977:96;;9026:2;9016:12;;;;9046;8977:96;9099:2;9090:11;;;:15;9086:96;;9135:2;9125:12;;;;9155;9086:96;9208:1;9199:10;;;:14;9195:93;;9243:1;9233:11;;;;9262;9195:93;9314:1;9305:10;;;:14;9301:93;;9349:1;9339:11;;;;9368;9301:93;9420:1;9411:10;;;:14;9407:93;;9455:1;9445:11;;;;9474;9407:93;9526:1;9517:10;;;:14;9513:64;;9561:1;9551:11;9603:6;8633:983;-1:-1:-1;;8633:983:87:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:87;;588:104;-1:-1:-1;588:104:87:o;31996:276:127:-;32073:7;;32108:25;32127:6;32115:8;32108:25;:::i;:::-;32092:41;;32157:1;32148:6;:10;32144:90;;;32181:42;;;;;;;;22937:25:144;;;22978:18;;;22971:34;;;23021:18;;;23014:34;;;22910:18;;32181:42:127;22735:319:144;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:144;;14:180;-1:-1:-1;14:180:144:o;199:184::-;-1:-1:-1;;;248:1:144;241:88;348:4;345:1;338:15;372:4;369:1;362:15;388:145;474:1;467:5;464:12;454:46;;480:18;;:::i;:::-;509;;388:145::o;538:250::-;623:1;633:113;647:6;644:1;641:13;633:113;;;723:11;;;717:18;704:11;;;697:39;669:2;662:10;633:113;;;-1:-1:-1;;780:1:144;762:16;;755:27;538:250::o;793:271::-;835:3;873:5;867:12;900:6;895:3;888:19;916:76;985:6;978:4;973:3;969:14;962:4;955:5;951:16;916:76;:::i;:::-;1046:2;1025:15;-1:-1:-1;;1021:29:144;1012:39;;;;1053:4;1008:50;;793:271;-1:-1:-1;;793:271:144:o;1069:252::-;1156:5;1150:12;1145:3;1138:25;1120:3;1209:4;1202:5;1198:16;1192:23;1247:4;1240;1235:3;1231:14;1224:28;1268:47;1309:4;1304:3;1300:14;1286:12;1268:47;:::i;:::-;1261:54;1069:252;-1:-1:-1;;;;1069:252:144:o;1326:1058::-;1740:4;1769:3;1799:6;1788:9;1781:25;1842:6;1837:2;1826:9;1822:18;1815:34;1885:6;1880:2;1869:9;1865:18;1858:34;1928:6;1923:2;1912:9;1908:18;1901:34;-1:-1:-1;;;;;2045:2:144;2037:6;2033:15;2027:3;2016:9;2012:19;2005:44;2098:2;2090:6;2086:15;2080:3;2069:9;2065:19;2058:44;2151:2;2143:6;2139:15;2133:3;2122:9;2118:19;2111:44;;2192:6;2186:3;2175:9;2171:19;2164:35;2208:59;2262:3;2251:9;2247:19;2239:6;2208:59;:::i;:::-;2304:2;2298:3;2287:9;2283:19;2276:31;2324:54;2374:2;2363:9;2359:18;2351:6;2324:54;:::i;:::-;2316:62;1326:1058;-1:-1:-1;;;;;;;;;;;;;1326:1058:144:o;2389:332::-;2447:6;2500:2;2488:9;2479:7;2475:23;2471:32;2468:52;;;2516:1;2513;2506:12;2468:52;2555:9;2542:23;2605:66;2598:5;2594:78;2587:5;2584:89;2574:117;;2687:1;2684;2677:12;2918:154;-1:-1:-1;;;;;2997:5:144;2993:54;2986:5;2983:65;2973:93;;3062:1;3059;3052:12;3077:247;3136:6;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;3244:9;3231:23;3263:31;3288:5;3263:31;:::i;3329:184::-;-1:-1:-1;;;3378:1:144;3371:88;3478:4;3475:1;3468:15;3502:4;3499:1;3492:15;3518:257;3590:4;3584:11;;;3622:17;;3669:18;3654:34;;3690:22;;;3651:62;3648:88;;;3716:18;;:::i;:::-;3752:4;3745:24;3518:257;:::o;3780:255::-;3852:2;3846:9;3894:6;3882:19;;3931:18;3916:34;;3952:22;;;3913:62;3910:88;;;3978:18;;:::i;4040:253::-;4112:2;4106:9;4154:4;4142:17;;4189:18;4174:34;;4210:22;;;4171:62;4168:88;;;4236:18;;:::i;4298:253::-;4370:2;4364:9;4412:4;4400:17;;4447:18;4432:34;;4468:22;;;4429:62;4426:88;;;4494:18;;:::i;4556:275::-;4627:2;4621:9;4692:2;4673:13;;-1:-1:-1;;4669:27:144;4657:40;;4727:18;4712:34;;4748:22;;;4709:62;4706:88;;;4774:18;;:::i;:::-;4810:2;4803:22;4556:275;;-1:-1:-1;4556:275:144:o;4836:183::-;4896:4;4929:18;4921:6;4918:30;4915:56;;;4951:18;;:::i;:::-;-1:-1:-1;4996:1:144;4992:14;5008:4;4988:25;;4836:183::o;5024:737::-;5078:5;5131:3;5124:4;5116:6;5112:17;5108:27;5098:55;;5149:1;5146;5139:12;5098:55;5185:6;5172:20;5211:4;5235:60;5251:43;5291:2;5251:43;:::i;:::-;5235:60;:::i;:::-;5329:15;;;5415:1;5411:10;;;;5399:23;;5395:32;;;5360:12;;;;5439:15;;;5436:35;;;5467:1;5464;5457:12;5436:35;5503:2;5495:6;5491:15;5515:217;5531:6;5526:3;5523:15;5515:217;;;5611:3;5598:17;5628:31;5653:5;5628:31;:::i;:::-;5672:18;;5710:12;;;;5548;;5515:217;;;-1:-1:-1;5750:5:144;5024:737;-1:-1:-1;;;;;;5024:737:144:o;5766:186::-;5814:4;5847:18;5839:6;5836:30;5833:56;;;5869:18;;:::i;:::-;-1:-1:-1;5935:2:144;5914:15;-1:-1:-1;;5910:29:144;5941:4;5906:40;;5766:186::o;5957:462::-;5999:5;6052:3;6045:4;6037:6;6033:17;6029:27;6019:55;;6070:1;6067;6060:12;6019:55;6106:6;6093:20;6137:48;6153:31;6181:2;6153:31;:::i;6137:48::-;6210:2;6201:7;6194:19;6256:3;6249:4;6244:2;6236:6;6232:15;6228:26;6225:35;6222:55;;;6273:1;6270;6263:12;6222:55;6338:2;6331:4;6323:6;6319:17;6312:4;6303:7;6299:18;6286:55;6386:1;6361:16;;;6379:4;6357:27;6350:38;;;;6365:7;5957:462;-1:-1:-1;;;5957:462:144:o;6424:702::-;6535:6;6543;6551;6604:2;6592:9;6583:7;6579:23;6575:32;6572:52;;;6620:1;6617;6610:12;6572:52;6660:9;6647:23;6689:18;6730:2;6722:6;6719:14;6716:34;;;6746:1;6743;6736:12;6716:34;6769:61;6822:7;6813:6;6802:9;6798:22;6769:61;:::i;:::-;6759:71;;6883:2;6872:9;6868:18;6855:32;6839:48;;6912:2;6902:8;6899:16;6896:36;;;6928:1;6925;6918:12;6896:36;;6951:51;6994:7;6983:8;6972:9;6968:24;6951:51;:::i;:::-;6941:61;;;7052:2;7041:9;7037:18;7024:32;7065:31;7090:5;7065:31;:::i;:::-;7115:5;7105:15;;;6424:702;;;;;:::o;7558:455::-;7635:6;7643;7696:2;7684:9;7675:7;7671:23;7667:32;7664:52;;;7712:1;7709;7702:12;7664:52;7752:9;7739:23;7785:18;7777:6;7774:30;7771:50;;;7817:1;7814;7807:12;7771:50;7840:49;7881:7;7872:6;7861:9;7857:22;7840:49;:::i;:::-;7830:59;;;7939:2;7928:9;7924:18;7911:32;7952:31;7977:5;7952:31;:::i;:::-;8002:5;7992:15;;;7558:455;;;;;:::o;8249:142::-;8332:1;8325:5;8322:12;8312:46;;8338:18;;:::i;8396:213::-;8545:2;8530:18;;8557:46;8534:9;8585:6;8557:46;:::i;8614:315::-;8682:6;8690;8743:2;8731:9;8722:7;8718:23;8714:32;8711:52;;;8759:1;8756;8749:12;8711:52;8798:9;8785:23;8817:31;8842:5;8817:31;:::i;:::-;8867:5;8919:2;8904:18;;;;8891:32;;-1:-1:-1;;;8614:315:144:o;8934:316::-;9011:6;9019;9027;9080:2;9068:9;9059:7;9055:23;9051:32;9048:52;;;9096:1;9093;9086:12;9048:52;-1:-1:-1;;9119:23:144;;;9189:2;9174:18;;9161:32;;-1:-1:-1;9240:2:144;9225:18;;;9212:32;;8934:316;-1:-1:-1;8934:316:144:o;9255:143::-;9339:1;9332:5;9329:12;9319:46;;9345:18;;:::i;9403:215::-;9553:2;9538:18;;9565:47;9542:9;9594:6;9565:47;:::i;10063:261::-;10244:2;10233:9;10226:21;10207:4;10264:54;10314:2;10303:9;10299:18;10291:6;10264:54;:::i;10329:1357::-;10456:6;10464;10517:2;10505:9;10496:7;10492:23;10488:32;10485:52;;;10533:1;10530;10523:12;10485:52;10573:9;10560:23;10602:18;10643:2;10635:6;10632:14;10629:34;;;10659:1;10656;10649:12;10629:34;10682:61;10735:7;10726:6;10715:9;10711:22;10682:61;:::i;:::-;10672:71;;10762:2;10752:12;;10817:2;10806:9;10802:18;10789:32;10846:2;10836:8;10833:16;10830:36;;;10862:1;10859;10852:12;10830:36;10885:24;;10940:4;10932:13;;10928:27;-1:-1:-1;10918:55:144;;10969:1;10966;10959:12;10918:55;11005:2;10992:16;11028:60;11044:43;11084:2;11044:43;:::i;11028:60::-;11122:15;;;11204:1;11200:10;;;;11192:19;;11188:28;;;11153:12;;;;11228:19;;;11225:39;;;11260:1;11257;11250:12;11225:39;11292:2;11288;11284:11;11304:352;11320:6;11315:3;11312:15;11304:352;;;11406:3;11393:17;11442:2;11429:11;11426:19;11423:109;;;11486:1;11515:2;11511;11504:14;11423:109;11557:56;11605:7;11600:2;11586:11;11582:2;11578:20;11574:29;11557:56;:::i;:::-;11545:69;;-1:-1:-1;11634:12:144;;;;11337;;11304:352;;;11308:3;11675:5;11665:15;;;;;;;;10329:1357;;;;;:::o;11899:740::-;12132:2;12184:21;;;12254:13;;12157:18;;;12276:22;;;12103:4;;12132:2;12317;;12335:18;;;;12376:15;;;12103:4;12419:194;12433:6;12430:1;12427:13;12419:194;;;12482:51;12529:3;12520:6;12514:13;11774:12;;-1:-1:-1;;;;;11770:61:144;11758:74;;11881:4;11870:16;;;11864:23;11848:14;;11841:47;11691:203;12482:51;12553:12;;;;12588:15;;;;12455:1;12448:9;12419:194;;;-1:-1:-1;12630:3:144;;11899:740;-1:-1:-1;;;;;;;11899:740:144:o;12644:118::-;12730:5;12723:13;12716:21;12709:5;12706:32;12696:60;;12752:1;12749;12742:12;12767:241;12823:6;12876:2;12864:9;12855:7;12851:23;12847:32;12844:52;;;12892:1;12889;12882:12;12844:52;12931:9;12918:23;12950:28;12972:5;12950:28;:::i;13013:953::-;-1:-1:-1;;;;;13509:15:144;;;13491:34;;13561:15;;;13556:2;13541:18;;13534:43;13613:15;;13608:2;13593:18;;13586:43;13660:2;13645:18;;13638:34;;;13703:3;13688:19;;13681:35;;;13417:3;13402:19;;13725:59;13779:3;13764:19;;13756:6;13725:59;:::i;:::-;13821:6;13815:3;13804:9;13800:19;13793:35;13865:6;13859:3;13848:9;13844:19;13837:35;13909:6;13903:3;13892:9;13888:19;13881:35;13953:6;13947:3;13936:9;13932:19;13925:35;13013:953;;;;;;;;;;;;;:::o;13971:315::-;14039:6;14047;14100:2;14088:9;14079:7;14075:23;14071:32;14068:52;;;14116:1;14113;14106:12;14068:52;14152:9;14139:23;14129:33;;14212:2;14201:9;14197:18;14184:32;14225:31;14250:5;14225:31;:::i;14291:1202::-;14409:6;14440:2;14483;14471:9;14462:7;14458:23;14454:32;14451:52;;;14499:1;14496;14489:12;14451:52;14539:9;14526:23;14572:18;14564:6;14561:30;14558:50;;;14604:1;14601;14594:12;14558:50;14627:22;;14680:4;14672:13;;14668:27;-1:-1:-1;14658:55:144;;14709:1;14706;14699:12;14658:55;14745:2;14732:16;14768:60;14784:43;14824:2;14784:43;:::i;14768:60::-;14862:15;;;14944:1;14940:10;;;;14932:19;;14928:28;;;14893:12;;;;14968:19;;;14965:39;;;15000:1;14997;14990:12;14965:39;15024:11;;;;15044:419;15060:6;15055:3;15052:15;15044:419;;;15142:4;15136:3;15127:7;15123:17;15119:28;15116:118;;;15188:1;15217:2;15213;15206:14;15116:118;15260:22;;:::i;:::-;15309:17;;15295:32;;15376:12;;;15363:26;15347:14;;;15340:50;15403:18;;15086:4;15077:14;;;;15441:12;;;;15044:419;;15498:242;15641:2;15626:18;;15674:1;15663:13;;15653:47;;15680:18;;:::i;:::-;15709:25;;;15498:242;:::o;15745:388::-;15822:6;15830;15883:2;15871:9;15862:7;15858:23;15854:32;15851:52;;;15899:1;15896;15889:12;15851:52;15935:9;15922:23;15912:33;;15996:2;15985:9;15981:18;15968:32;16023:18;16015:6;16012:30;16009:50;;;16055:1;16052;16045:12;16009:50;16078:49;16119:7;16110:6;16099:9;16095:22;16078:49;:::i;:::-;16068:59;;;15745:388;;;;;:::o;16138:437::-;16217:1;16213:12;;;;16260;;;16281:61;;16335:4;16327:6;16323:17;16313:27;;16281:61;16388:2;16380:6;16377:14;16357:18;16354:38;16351:218;;-1:-1:-1;;;16422:1:144;16415:88;16526:4;16523:1;16516:15;16554:4;16551:1;16544:15;16833:184;-1:-1:-1;;;16882:1:144;16875:88;16982:4;16979:1;16972:15;17006:4;17003:1;16996:15;17022:128;17089:9;;;17110:11;;;17107:37;;;17124:18;;:::i;17528:184::-;-1:-1:-1;;;17577:1:144;17570:88;17677:4;17674:1;17667:15;17701:4;17698:1;17691:15;17717:274;17757:1;17783;17773:189;;-1:-1:-1;;;17815:1:144;17808:88;17919:4;17916:1;17909:15;17947:4;17944:1;17937:15;17773:189;-1:-1:-1;17976:9:144;;17717:274::o;17996:168::-;18069:9;;;18100;;18117:15;;;18111:22;;18097:37;18087:71;;18138:18;;:::i;18169:125::-;18234:9;;;18255:10;;;18252:36;;;18268:18;;:::i;18631:245::-;18698:6;18751:2;18739:9;18730:7;18726:23;18722:32;18719:52;;;18767:1;18764;18757:12;18719:52;18799:9;18793:16;18818:28;18840:5;18818:28;:::i;18881:184::-;18951:6;19004:2;18992:9;18983:7;18979:23;18975:32;18972:52;;;19020:1;19017;19010:12;18972:52;-1:-1:-1;19043:16:144;;18881:184;-1:-1:-1;18881:184:144:o;19070:138::-;19149:13;;19171:31;19149:13;19171:31;:::i;:::-;19070:138;;;:::o;19213:157::-;19302:13;;19344:1;19334:12;;19324:40;;19360:1;19357;19350:12;19375:156;19463:13;;19505:1;19495:12;;19485:40;;19521:1;19518;19511:12;19536:420;19611:5;19659:4;19647:9;19642:3;19638:19;19634:30;19631:50;;;19677:1;19674;19667:12;19631:50;19710:2;19704:9;19752:4;19744:6;19740:17;19823:6;19811:10;19808:22;19787:18;19775:10;19772:34;19769:62;19766:88;;;19834:18;;:::i;:::-;19870:2;19863:22;19933:16;;19918:32;;-1:-1:-1;19903:6:144;19536:420;-1:-1:-1;19536:420:144:o;19961:356::-;20030:5;20078:4;20066:9;20061:3;20057:19;20053:30;20050:50;;;20096:1;20093;20086:12;20050:50;20118:22;;:::i;:::-;20109:31;;20170:9;20164:16;20189:33;20214:7;20189:33;:::i;:::-;20245:7;20238:5;20231:22;;20306:2;20295:9;20291:18;20285:25;20280:2;20273:5;20269:14;20262:49;19961:356;;;;:::o;20322:972::-;20427:6;20480:3;20468:9;20459:7;20455:23;20451:33;20448:53;;;20497:1;20494;20487:12;20448:53;20523:22;;:::i;:::-;20568:40;20598:9;20568:40;:::i;:::-;20561:5;20554:55;20662:2;20651:9;20647:18;20641:25;20636:2;20629:5;20625:14;20618:49;20720:2;20709:9;20705:18;20699:25;20694:2;20687:5;20683:14;20676:49;20778:2;20767:9;20763:18;20757:25;20752:2;20745:5;20741:14;20734:49;20837:3;20826:9;20822:19;20816:26;20810:3;20803:5;20799:15;20792:51;20876:60;20931:3;20920:9;20916:19;20876:60;:::i;:::-;20870:3;20863:5;20859:15;20852:85;20970:59;21024:3;21013:9;21009:19;20970:59;:::i;:::-;20964:3;20957:5;20953:15;20946:84;21063:76;21131:7;21125:3;21114:9;21110:19;21063:76;:::i;:::-;21057:3;21050:5;21046:15;21039:101;21159:3;21194:69;21255:7;21250:2;21239:9;21235:18;21194:69;:::i;:::-;21178:14;;;21171:93;21182:5;20322:972;-1:-1:-1;;;20322:972:144:o;21299:1129::-;21489:4;21531:3;21520:9;21516:19;21508:27;;21562:6;21551:9;21544:25;-1:-1:-1;;;;;21615:6:144;21609:13;21605:62;21600:2;21589:9;21585:18;21578:90;21722:2;21714:6;21710:15;21704:22;21699:2;21688:9;21684:18;21677:50;21781:2;21773:6;21769:15;21763:22;21758:2;21747:9;21743:18;21736:50;21841:2;21833:6;21829:15;21823:22;21817:3;21806:9;21802:19;21795:51;21901:3;21893:6;21889:16;21883:23;21877:3;21866:9;21862:19;21855:52;21954:3;21946:6;21942:16;21936:23;21968:63;22026:3;22015:9;22011:19;21997:12;21968:63;:::i;:::-;;22080:3;22072:6;22068:16;22062:23;22094:64;22153:3;22142:9;22138:19;22122:14;22094:64;:::i;:::-;-1:-1:-1;22207:3:144;22195:16;;22189:23;22270:21;22231:3;22250:18;;;22243:49;;;;22329:15;;;22323:22;11774:12;;-1:-1:-1;;;;;11770:61:144;22417:3;22402:19;;11758:74;11881:4;11870:16;11864:23;11848:14;;;;11841:47;21299:1129;;-1:-1:-1;21299:1129:144:o;23059:726::-;23125:5;23173:4;23161:9;23156:3;23152:19;23148:30;23145:50;;;23191:1;23188;23181:12;23145:50;23213:22;;:::i;:::-;23204:31;;23264:9;23258:16;23251:5;23244:31;23319:2;23308:9;23304:18;23298:25;23346:18;23338:6;23335:30;23332:50;;;23378:1;23375;23368:12;23332:50;23401:22;;23454:4;23446:13;;23442:23;-1:-1:-1;23432:51:144;;23479:1;23476;23469:12;23432:51;23508:2;23502:9;23533:48;23549:31;23577:2;23549:31;:::i;23533:48::-;23604:2;23597:5;23590:17;23644:3;23639:2;23634;23630;23626:11;23622:20;23619:29;23616:49;;;23661:1;23658;23651:12;23616:49;23674:67;23738:2;23733;23726:5;23722:14;23717:2;23713;23709:11;23674:67;:::i;:::-;23768:2;23757:14;;23750:29;-1:-1:-1;23761:5:144;;23059:726;-1:-1:-1;;;23059:726:144:o;23790:1028::-;23882:6;23935:2;23923:9;23914:7;23910:23;23906:32;23903:52;;;23951:1;23948;23941:12;23903:52;23984:9;23978:16;24013:18;24054:2;24046:6;24043:14;24040:34;;;24070:1;24067;24060:12;24040:34;24093:22;;;;24149:4;24131:16;;;24127:27;24124:47;;;24167:1;24164;24157:12;24124:47;24193:22;;:::i;:::-;24244:2;24238:9;24231:5;24224:24;24286:2;24282;24278:11;24272:18;24299:33;24324:7;24299:33;:::i;:::-;24359:2;24348:14;;24341:31;24410:2;24402:11;;24396:18;24423:33;24396:18;24423:33;:::i;:::-;24483:2;24472:14;;24465:31;24535:2;24527:11;;24521:18;24551:16;;;24548:36;;;24580:1;24577;24570:12;24548:36;24616:65;24673:7;24662:8;24658:2;24654:17;24616:65;:::i;:::-;24611:2;24604:5;24600:14;24593:89;;24729:3;24725:2;24721:12;24715:19;24709:3;24702:5;24698:15;24691:44;24782:3;24778:2;24774:12;24768:19;24762:3;24755:5;24751:15;24744:44;24807:5;24797:15;;;;;23790:1028;;;;:::o;25196:986::-;25299:6;25352:2;25340:9;25331:7;25327:23;25323:32;25320:52;;;25368:1;25365;25358:12;25320:52;25401:9;25395:16;25430:18;25471:2;25463:6;25460:14;25457:34;;;25487:1;25484;25477:12;25457:34;25510:22;;;;25566:4;25548:16;;;25544:27;25541:47;;;25584:1;25581;25574:12;25541:47;25610:22;;:::i;:::-;25661:2;25655:9;25648:5;25641:24;25703:2;25699;25695:11;25689:18;25716:33;25741:7;25716:33;:::i;:::-;25776:2;25765:14;;25758:31;25835:2;25827:11;;;25821:18;25805:14;;;25798:42;25878:2;25870:11;;25864:18;25891:33;25864:18;25891:33;:::i;:::-;25951:2;25940:14;;25933:31;26003:3;25995:12;;25989:19;26020:16;;;26017:36;;;26049:1;26046;26039:12;26017:36;26086:65;26143:7;26132:8;26128:2;26124:17;26086:65;:::i;:::-;26080:3;26069:15;;26062:90;-1:-1:-1;26073:5:144;25196:986;-1:-1:-1;;;;;25196:986:144:o;26187:265::-;26271:6;26324:2;26312:9;26303:7;26299:23;26295:32;26292:52;;;26340:1;26337;26330:12;26292:52;26372:9;26366:16;26391:31;26416:5;26391:31;:::i;26457:135::-;26496:3;26517:17;;;26514:43;;26537:18;;:::i;:::-;-1:-1:-1;26584:1:144;26573:13;;26457:135::o;26723:545::-;26825:2;26820:3;26817:11;26814:448;;;26861:1;26886:5;26882:2;26875:17;26931:4;26927:2;26917:19;27001:2;26989:10;26985:19;26982:1;26978:27;26972:4;26968:38;27037:4;27025:10;27022:20;27019:47;;;-1:-1:-1;27060:4:144;27019:47;27115:2;27110:3;27106:12;27103:1;27099:20;27093:4;27089:31;27079:41;;27170:82;27188:2;27181:5;27178:13;27170:82;;;27233:17;;;27214:1;27203:13;27170:82;;;27174:3;;;26723:545;;;:::o;27444:1352::-;27570:3;27564:10;27597:18;27589:6;27586:30;27583:56;;;27619:18;;:::i;:::-;27648:97;27738:6;27698:38;27730:4;27724:11;27698:38;:::i;:::-;27692:4;27648:97;:::i;:::-;27800:4;;27864:2;27853:14;;27881:1;27876:663;;;;28583:1;28600:6;28597:89;;;-1:-1:-1;28652:19:144;;;28646:26;28597:89;-1:-1:-1;;27401:1:144;27397:11;;;27393:24;27389:29;27379:40;27425:1;27421:11;;;27376:57;28699:81;;27846:944;;27876:663;26670:1;26663:14;;;26707:4;26694:18;;-1:-1:-1;;27912:20:144;;;28030:236;28044:7;28041:1;28038:14;28030:236;;;28133:19;;;28127:26;28112:42;;28225:27;;;;28193:1;28181:14;;;;28060:19;;28030:236;;;28034:3;28294:6;28285:7;28282:19;28279:201;;;28355:19;;;28349:26;-1:-1:-1;;28438:1:144;28434:14;;;28450:3;28430:24;28426:37;28422:42;28407:58;28392:74;;28279:201;-1:-1:-1;;;;;28526:1:144;28510:14;;;28506:22;28493:36;;-1:-1:-1;27444:1352:144:o;29073:273::-;29141:6;29194:2;29182:9;29173:7;29169:23;29165:32;29162:52;;;29210:1;29207;29200:12;29162:52;29242:9;29236:16;29292:4;29285:5;29281:16;29274:5;29271:27;29261:55;;29312:1;29309;29302:12;29351:422;29440:1;29483:5;29440:1;29497:270;29518:7;29508:8;29505:21;29497:270;;;29577:4;29573:1;29569:6;29565:17;29559:4;29556:27;29553:53;;;29586:18;;:::i;:::-;29636:7;29626:8;29622:22;29619:55;;;29656:16;;;;29619:55;29735:22;;;;29695:15;;;;29497:270;;;29501:3;29351:422;;;;;:::o;29778:806::-;29827:5;29857:8;29847:80;;-1:-1:-1;29898:1:144;29912:5;;29847:80;29946:4;29936:76;;-1:-1:-1;29983:1:144;29997:5;;29936:76;30028:4;30046:1;30041:59;;;;30114:1;30109:130;;;;30021:218;;30041:59;30071:1;30062:10;;30085:5;;;30109:130;30146:3;30136:8;30133:17;30130:43;;;30153:18;;:::i;:::-;-1:-1:-1;;30209:1:144;30195:16;;30224:5;;30021:218;;30323:2;30313:8;30310:16;30304:3;30298:4;30295:13;30291:36;30285:2;30275:8;30272:16;30267:2;30261:4;30258:12;30254:35;30251:77;30248:159;;;-1:-1:-1;30360:19:144;;;30392:5;;30248:159;30439:34;30464:8;30458:4;30439:34;:::i;:::-;30509:6;30505:1;30501:6;30497:19;30488:7;30485:32;30482:58;;;30520:18;;:::i;:::-;30558:20;;29778:806;-1:-1:-1;;;29778:806:144:o;30589:131::-;30649:5;30678:36;30705:8;30699:4;30678:36;:::i;31082:184::-;-1:-1:-1;;;31131:1:144;31124:88;31231:4;31228:1;31221:15;31255:4;31252:1;31245:15;31271:1185;31400:6;31431:2;31474;31462:9;31453:7;31449:23;31445:32;31442:52;;;31490:1;31487;31480:12;31442:52;31523:9;31517:16;31556:18;31548:6;31545:30;31542:50;;;31588:1;31585;31578:12;31542:50;31611:22;;31664:4;31656:13;;31652:27;-1:-1:-1;31642:55:144;;31693:1;31690;31683:12;31642:55;31722:2;31716:9;31745:60;31761:43;31801:2;31761:43;:::i;31745:60::-;31839:15;;;31921:1;31917:10;;;;31909:19;;31905:28;;;31870:12;;;;31945:19;;;31942:39;;;31977:1;31974;31967:12;31942:39;32001:11;;;;32021:405;32037:6;32032:3;32029:15;32021:405;;;32119:4;32113:3;32104:7;32100:17;32096:28;32093:118;;;32165:1;32194:2;32190;32183:14;32093:118;32237:22;;:::i;:::-;32286:10;;32272:25;;32339:12;;;32333:19;32317:14;;;32310:43;32366:18;;32063:4;32054:14;;;;32404:12;;;;32021:405;;32461:184;-1:-1:-1;;;32510:1:144;32503:88;32610:4;32607:1;32600:15;32634:4;32631:1;32624:15;32650:220;32799:2;32788:9;32781:21;32762:4;32819:45;32860:2;32849:9;32845:18;32837:6;32819:45;:::i;32875:291::-;33052:2;33041:9;33034:21;33015:4;33072:45;33113:2;33102:9;33098:18;33090:6;33072:45;:::i;:::-;33064:53;;33153:6;33148:2;33137:9;33133:18;33126:34;32875:291;;;;;:::o;33937:216::-;34001:9;;;34029:11;;;33976:3;34059:9;;34087:10;;34083:19;;34112:10;;34104:19;;34080:44;34077:70;;;34127:18;;:::i","linkReferences":{},"immutableReferences":{"3335":[{"start":1138,"length":32},{"start":6287,"length":32},{"start":6434,"length":32},{"start":7083,"length":32}],"3337":[{"start":1502,"length":32}]}},"methodIdentifiers":{"D()":"0f529ba2","MAX_STAKED_PROPOSALS()":"406244d8","NATIVE()":"a0cf0aea","_minThresholdPoints()":"7c6570ba","activatePoints()":"814516ad","allocate(bytes,address)":"ef2920fc","calculateConviction(uint256,uint256,uint256)":"346db8cb","calculateThreshold(uint256)":"59a5db8b","canExecuteProposal(uint256)":"824ea8ed","deactivatePoints()":"1ddf1e23","deactivatePoints(address)":"6453d9c4","decay()":"54fac919","decreasePower(address,uint256)":"2ed04b2b","distribute(address[],bytes,address)":"0a6f0ee9","getAllo()":"15cc481e","getMaxAmount()":"0ba95909","getMaxConviction(uint256)":"950559d7","getMetadata(uint256)":"a574cea4","getPayouts(address[],bytes[])":"b2b878d0","getPointSystem()":"c3292171","getPoolAmount()":"4ab4ba42","getPoolId()":"38fff2d0","getProposal(uint256)":"c7f758a8","getProposalStakedAmount(uint256)":"dc96ff2d","getProposalVoterStake(uint256,address)":"e0dd2c38","getRecipientStatus(address)":"eb11af93","getStrategyId()":"42fda9c7","getTotalVoterStakePct(address)":"bcc5b93b","increasePoolAmount(uint256)":"f5b0dfb7","increasePower(address,uint256)":"782aadff","initialize(uint256,bytes)":"edd146cc","isPoolActive()":"df868ed3","isValidAllocator(address)":"4d31d087","maxRatio()":"76365af7","pointConfig()":"a47ff7e5","pointSystem()":"2dbd6fdd","proposalCounter()":"0c0512e9","proposalType()":"351d9f96","proposals(uint256)":"013cf08b","registerRecipient(bytes,address)":"2bbe0cae","registryCommunity()":"6003e414","setDecay(uint256)":"69fa25c4","setMaxRatio(uint256)":"11f22ae3","setMinThresholdPoints(uint256)":"2cefadbb","setPoolActive(bool)":"b5f620ce","setRegistryCommunity(address)":"058aca44","setWeight(uint256)":"fc1711f2","supportProposal((uint256,int256)[])":"e33add93","supportsInterface(bytes4)":"01ffc9a7","totalEffectiveActivePoints()":"d1e36232","totalPointsActivated()":"aba9ffee","totalStaked()":"817b1cd2","totalVoterStakePct(address)":"5db64b99","updateProposalConviction(uint256)":"1aa91a9e","voterStakedProposals(address,uint256)":"868c57b8","weight()":"a1aab33f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountOverMaxRatio\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CantIncreaseFixedSystem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConvictionUnderMinimumThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxPointsReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointsSupport\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pointsBalance\",\"type\":\"uint256\"}],\"name\":\"NotEnoughPointsToSupport\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCommunityAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_poolAmount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountNotEnough\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalDataIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotActive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotInList\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ProposalSupportDuplicated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_support\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"_delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"_result\",\"type\":\"int256\"}],\"name\":\"SupportUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserIsInactive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Allocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"DecayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"InitializedCV\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"}],\"name\":\"MaxRatioUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"before\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"}],\"name\":\"MinThresholdPointsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"PointsDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"PoolActive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensUnStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToDecrease\",\"type\":\"uint256\"}],\"name\":\"PowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"PowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStakedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"}],\"name\":\"SupportAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"WeightUpdated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"D\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKED_PROPOSALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_minThresholdPoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"}],\"name\":\"calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"}],\"name\":\"calculateThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"canExecuteProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canBeExecuted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUnstake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllo\",\"outputs\":[{\"internalType\":\"contract IAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getMaxConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"name\":\"getPayouts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IStrategy.PayoutSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voterStakedPoints\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getProposalVoterStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipientId\",\"type\":\"address\"}],\"name\":\"getRecipientStatus\",\"outputs\":[{\"internalType\":\"enum IStrategy.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStrategyId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getTotalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"increasePoolAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPoolActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocator\",\"type\":\"address\"}],\"name\":\"isValidAllocator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalType\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCommunity\",\"outputs\":[{\"internalType\":\"contract RegistryCommunity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decay\",\"type\":\"uint256\"}],\"name\":\"setDecay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxRatio\",\"type\":\"uint256\"}],\"name\":\"setMaxRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints_\",\"type\":\"uint256\"}],\"name\":\"setMinThresholdPoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"setPoolActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"setRegistryCommunity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_weight\",\"type\":\"uint256\"}],\"name\":\"setWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deltaSupport\",\"type\":\"int256\"}],\"internalType\":\"struct StrategyStruct.ProposalSupport[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"supportProposal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEffectiveActivePoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalPointsActivated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"updateProposalConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voterStakedProposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"params\":{\"amount\":\"The amount allocated\",\"recipientId\":\"The ID of the recipient\",\"token\":\"The token allocated\"}},\"Distributed(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount distributed\",\"recipientAddress\":\"The recipient\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}},\"Initialized(uint256,bytes)\":{\"params\":{\"data\":\"The data passed to the 'initialize' function\",\"poolId\":\"The ID of the pool\"}},\"PoolActive(bool)\":{\"params\":{\"active\":\"The status of the pool\"}},\"Registered(address,bytes,address)\":{\"params\":{\"data\":\"The data passed to the 'registerRecipient' function\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to allocate to the recipient\",\"_sender\":\"The address of the sender\"}},\"calculateConviction(uint256,uint256,uint256)\":{\"details\":\"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\",\"params\":{\"_lastConv\":\"Last conviction record\",\"_oldAmount\":\"Amount of tokens staked until now\",\"_timePassed\":\"Number of blocks since last conviction record\"},\"returns\":{\"_0\":\"Current conviction\"}},\"calculateThreshold(uint256)\":{\"details\":\"Formula: \\u03c1 * totalStaked / (1 - a) / (\\u03b2 - requestedAmount / total)**2 For the Solidity implementation we amplify \\u03c1 and \\u03b2 and simplify the formula: weight = \\u03c1 * D maxRatio = \\u03b2 * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\",\"params\":{\"_requestedAmount\":\"Requested amount of tokens on certain proposal\"},\"returns\":{\"_threshold\":\"Threshold a proposal's conviction should surpass in order to be able to executed it.\"}},\"distribute(address[],bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to distribute to the recipients\",\"_recipientIds\":\"The IDs of the recipients\",\"_sender\":\"The address of the sender\"}},\"getAllo()\":{\"returns\":{\"_0\":\"The Allo contract\"}},\"getPayouts(address[],bytes[])\":{\"returns\":{\"_0\":\"Input the values you would send to distribute(), get the amounts each recipient in the array would receive\"}},\"getPoolAmount()\":{\"returns\":{\"_0\":\"The balance of the pool\"}},\"getPoolId()\":{\"returns\":{\"_0\":\"The ID of the pool\"}},\"getProposal(uint256)\":{\"details\":\"Get proposal details\",\"params\":{\"_proposalId\":\"Proposal id\"},\"returns\":{\"beneficiary\":\"Proposal beneficiary\",\"blockLast\":\"Last block when conviction was calculated\",\"convictionLast\":\"Last conviction calculated\",\"proposalStatus\":\"Proposal status\",\"requestedAmount\":\"Proposal requested amount\",\"requestedToken\":\"Proposal requested token\",\"stakedAmount\":\"Proposal staked points\",\"submitter\":\"Proposal submitter\",\"threshold\":\"Proposal threshold\"}},\"getProposalVoterStake(uint256,address)\":{\"params\":{\"_proposalId\":\"Proposal id\",\"_voter\":\"Voter address\"},\"returns\":{\"_0\":\"Proposal voter stake\"}},\"getRecipientStatus(address)\":{\"params\":{\"_recipientId\":\"The ID of the recipient\"},\"returns\":{\"_0\":\"The status of the recipient\"}},\"getStrategyId()\":{\"returns\":{\"_0\":\"The ID of the strategy\"}},\"increasePoolAmount(uint256)\":{\"details\":\"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.\",\"params\":{\"_amount\":\"The amount to increase the pool by\"}},\"initialize(uint256,bytes)\":{\"params\":{\"_data\":\"The encoded data\",\"_poolId\":\"The ID of the pool\"}},\"isPoolActive()\":{\"returns\":{\"_0\":\"'true' if the pool is active, otherwise 'false'\"}},\"isValidAllocator(address)\":{\"details\":\"How the allocator is determined is up to the strategy implementation.\",\"params\":{\"_allocator\":\"The address to check if it is a valid allocator for the strategy.\"},\"returns\":{\"_0\":\"'true' if the address is a valid allocator, 'false' otherwise\"}},\"registerRecipient(bytes,address)\":{\"details\":\"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to register the recipient\",\"_sender\":\"The address of the sender\"},\"returns\":{\"recipientId\":\"The recipientId\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"notice\":\"Emitted when a recipient is allocated to.\"},\"Distributed(address,address,uint256,address)\":{\"notice\":\"Emitted when tokens are distributed.\"},\"Initialized(uint256,bytes)\":{\"notice\":\"Emitted when strategy is initialized.\"},\"PoolActive(bool)\":{\"notice\":\"Emitted when pool is set to active status.\"},\"Registered(address,bytes,address)\":{\"notice\":\"Emitted when a recipient is registered.\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"allocate(bytes,address)\":{\"notice\":\"Allocates to a recipient.\"},\"distribute(address[],bytes,address)\":{\"notice\":\"Distributes funds (tokens) to recipients.\"},\"getAllo()\":{\"notice\":\"Getter for the 'Allo' contract.\"},\"getPoolAmount()\":{\"notice\":\"Getter for the 'poolAmount'.\"},\"getPoolId()\":{\"notice\":\"Getter for the 'poolId'.\"},\"getProposalVoterStake(uint256,address)\":{\"notice\":\"Get stake of voter `_voter` on proposal #`_proposalId`\"},\"getRecipientStatus(address)\":{\"notice\":\"Getter for the status of a recipient.\"},\"getStrategyId()\":{\"notice\":\"Getter for the 'strategyId'.\"},\"increasePoolAmount(uint256)\":{\"notice\":\"Increases the pool amount.\"},\"initialize(uint256,bytes)\":{\"notice\":\"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize().\"},\"isPoolActive()\":{\"notice\":\"Getter for whether or not the pool is active.\"},\"isValidAllocator(address)\":{\"notice\":\"Checks if the '_allocator' is a valid allocator.\"},\"registerRecipient(bytes,address)\":{\"notice\":\"Registers a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"CVStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_allo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[],"type":"error","name":"AmountOverMaxRatio"},{"inputs":[],"type":"error","name":"CantIncreaseFixedSystem"},{"inputs":[],"type":"error","name":"ConvictionUnderMinimumThreshold"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"MaxPointsReached"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[{"internalType":"uint256","name":"pointsSupport","type":"uint256"},{"internalType":"uint256","name":"pointsBalance","type":"uint256"}],"type":"error","name":"NotEnoughPointsToSupport"},{"inputs":[],"type":"error","name":"NotImplemented"},{"inputs":[],"type":"error","name":"OnlyCommunityAllowed"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"_requestedAmount","type":"uint256"},{"internalType":"uint256","name":"_poolAmount","type":"uint256"}],"type":"error","name":"PoolAmountNotEnough"},{"inputs":[],"type":"error","name":"PoolIdCannotBeZero"},{"inputs":[],"type":"error","name":"PoolIsEmpty"},{"inputs":[],"type":"error","name":"ProposalDataIsEmpty"},{"inputs":[],"type":"error","name":"ProposalIdCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotActive"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotInList"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"ProposalSupportDuplicated"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_support","type":"uint256"},{"internalType":"int256","name":"_delta","type":"int256"},{"internalType":"int256","name":"_result","type":"int256"}],"type":"error","name":"SupportUnderflow"},{"inputs":[],"type":"error","name":"TokenCannotBeZero"},{"inputs":[],"type":"error","name":"TokenNotAllowed"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"UserCannotBeZero"},{"inputs":[],"type":"error","name":"UserIsInactive"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Allocated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"decay","type":"uint256","indexed":false}],"type":"event","name":"DecayUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"beneficiary","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"address","name":"recipientAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"struct StrategyStruct.InitializeParams","name":"data","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}],"indexed":false}],"type":"event","name":"InitializedCV","anonymous":false},{"inputs":[{"internalType":"uint256","name":"maxRatio","type":"uint256","indexed":false}],"type":"event","name":"MaxRatioUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"before","type":"uint256","indexed":false},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256","indexed":false}],"type":"event","name":"MinThresholdPointsUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false}],"type":"event","name":"PointsDeactivated","anonymous":false},{"inputs":[{"internalType":"bool","name":"active","type":"bool","indexed":false}],"type":"event","name":"PoolActive","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PoolAmountIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensUnStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToDecrease","type":"uint256","indexed":false}],"type":"event","name":"PowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"PowerIncreased","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalStakedAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"convictionLast","type":"uint256","indexed":false}],"type":"event","name":"SupportAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"weight","type":"uint256","indexed":false}],"type":"event","name":"WeightUpdated","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"D","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_STAKED_PROPOSALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_minThresholdPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"activatePoints"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_requestedAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateThreshold","outputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"canExecuteProposal","outputs":[{"internalType":"bool","name":"canBeExecuted","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[],"stateMutability":"view","type":"function","name":"decay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUnstake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllo","outputs":[{"internalType":"contract IAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMaxConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMetadata","outputs":[{"internalType":"struct Metadata","name":"","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"getPayouts","outputs":[{"internalType":"struct IStrategy.PayoutSummary[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"recipientAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposal","outputs":[{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"voterStakedPoints","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposalStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getProposalVoterStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_recipientId","type":"address"}],"stateMutability":"view","type":"function","name":"getRecipientStatus","outputs":[{"internalType":"enum IStrategy.Status","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStrategyId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePoolAmount"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isPoolActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_allocator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidAllocator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointConfig","outputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalType","outputs":[{"internalType":"enum StrategyStruct.ProposalType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"recipientId","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCommunity","outputs":[{"internalType":"contract RegistryCommunity","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_decay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDecay"},{"inputs":[{"internalType":"uint256","name":"_maxRatio","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxRatio"},{"inputs":[{"internalType":"uint256","name":"minThresholdPoints_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinThresholdPoints"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPoolActive"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRegistryCommunity"},{"inputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setWeight"},{"inputs":[{"internalType":"struct StrategyStruct.ProposalSupport[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"int256","name":"deltaSupport","type":"int256"}]}],"stateMutability":"pure","type":"function","name":"supportProposal"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEffectiveActivePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalPointsActivated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"totalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateProposalConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voterStakedProposals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"allocate(bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to allocate to the recipient","_sender":"The address of the sender"}},"calculateConviction(uint256,uint256,uint256)":{"details":"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128","params":{"_lastConv":"Last conviction record","_oldAmount":"Amount of tokens staked until now","_timePassed":"Number of blocks since last conviction record"},"returns":{"_0":"Current conviction"}},"calculateThreshold(uint256)":{"details":"Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2 For the Solidity implementation we amplify ρ and β and simplify the formula: weight = ρ * D maxRatio = β * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2","params":{"_requestedAmount":"Requested amount of tokens on certain proposal"},"returns":{"_threshold":"Threshold a proposal's conviction should surpass in order to be able to executed it."}},"distribute(address[],bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to distribute to the recipients","_recipientIds":"The IDs of the recipients","_sender":"The address of the sender"}},"getAllo()":{"returns":{"_0":"The Allo contract"}},"getPayouts(address[],bytes[])":{"returns":{"_0":"Input the values you would send to distribute(), get the amounts each recipient in the array would receive"}},"getPoolAmount()":{"returns":{"_0":"The balance of the pool"}},"getPoolId()":{"returns":{"_0":"The ID of the pool"}},"getProposal(uint256)":{"details":"Get proposal details","params":{"_proposalId":"Proposal id"},"returns":{"beneficiary":"Proposal beneficiary","blockLast":"Last block when conviction was calculated","convictionLast":"Last conviction calculated","proposalStatus":"Proposal status","requestedAmount":"Proposal requested amount","requestedToken":"Proposal requested token","stakedAmount":"Proposal staked points","submitter":"Proposal submitter","threshold":"Proposal threshold"}},"getProposalVoterStake(uint256,address)":{"params":{"_proposalId":"Proposal id","_voter":"Voter address"},"returns":{"_0":"Proposal voter stake"}},"getRecipientStatus(address)":{"params":{"_recipientId":"The ID of the recipient"},"returns":{"_0":"The status of the recipient"}},"getStrategyId()":{"returns":{"_0":"The ID of the strategy"}},"increasePoolAmount(uint256)":{"details":"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.","params":{"_amount":"The amount to increase the pool by"}},"initialize(uint256,bytes)":{"params":{"_data":"The encoded data","_poolId":"The ID of the pool"}},"isPoolActive()":{"returns":{"_0":"'true' if the pool is active, otherwise 'false'"}},"isValidAllocator(address)":{"details":"How the allocator is determined is up to the strategy implementation.","params":{"_allocator":"The address to check if it is a valid allocator for the strategy."},"returns":{"_0":"'true' if the address is a valid allocator, 'false' otherwise"}},"registerRecipient(bytes,address)":{"details":"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to register the recipient","_sender":"The address of the sender"},"returns":{"recipientId":"The recipientId"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"allocate(bytes,address)":{"notice":"Allocates to a recipient."},"distribute(address[],bytes,address)":{"notice":"Distributes funds (tokens) to recipients."},"getAllo()":{"notice":"Getter for the 'Allo' contract."},"getPoolAmount()":{"notice":"Getter for the 'poolAmount'."},"getPoolId()":{"notice":"Getter for the 'poolId'."},"getProposalVoterStake(uint256,address)":{"notice":"Get stake of voter `_voter` on proposal #`_proposalId`"},"getRecipientStatus(address)":{"notice":"Getter for the status of a recipient."},"getStrategyId()":{"notice":"Getter for the 'strategyId'."},"increasePoolAmount(uint256)":{"notice":"Increases the pool amount."},"initialize(uint256,bytes)":{"notice":"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize()."},"isPoolActive()":{"notice":"Getter for whether or not the pool is active."},"isValidAllocator(address)":{"notice":"Checks if the '_allocator' is a valid allocator."},"registerRecipient(bytes,address)":{"notice":"Registers a recipient."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"CVStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":3339,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolActive","offset":0,"slot":"0","type":"t_bool"},{"astId":3341,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3343,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolAmount","offset":0,"slot":"2","type":"t_uint256"},{"astId":73288,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"decay","offset":0,"slot":"3","type":"t_uint256"},{"astId":73290,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"maxRatio","offset":0,"slot":"4","type":"t_uint256"},{"astId":73292,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"weight","offset":0,"slot":"5","type":"t_uint256"},{"astId":73295,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalCounter","offset":0,"slot":"6","type":"t_uint256"},{"astId":73297,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalStaked","offset":0,"slot":"7","type":"t_uint256"},{"astId":73299,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalPointsActivated","offset":0,"slot":"8","type":"t_uint256"},{"astId":73302,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"_minThresholdPoints","offset":0,"slot":"9","type":"t_uint256"},{"astId":73304,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"surpressStateMutabilityWarning","offset":0,"slot":"10","type":"t_uint256"},{"astId":73307,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalType","offset":0,"slot":"11","type":"t_enum(ProposalType)73026"},{"astId":73310,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointSystem","offset":1,"slot":"11","type":"t_enum(PointSystem)73031"},{"astId":73313,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointConfig","offset":0,"slot":"12","type":"t_struct(PointSystemConfig)73084_storage"},{"astId":73316,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"registryCommunity","offset":0,"slot":"13","type":"t_contract(RegistryCommunity)77913"},{"astId":73321,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposals","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(Proposal)73076_storage)"},{"astId":73325,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalVoterStakePct","offset":0,"slot":"15","type":"t_mapping(t_address,t_uint256)"},{"astId":73330,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"voterStakedProposals","offset":0,"slot":"16","type":"t_mapping(t_address,t_array(t_uint256)dyn_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)dyn_storage":{"encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(RegistryCommunity)77913":{"encoding":"inplace","label":"contract RegistryCommunity","numberOfBytes":"20"},"t_enum(PointSystem)73031":{"encoding":"inplace","label":"enum StrategyStruct.PointSystem","numberOfBytes":"1"},"t_enum(ProposalStatus)73049":{"encoding":"inplace","label":"enum StrategyStruct.ProposalStatus","numberOfBytes":"1"},"t_enum(ProposalType)73026":{"encoding":"inplace","label":"enum StrategyStruct.ProposalType","numberOfBytes":"1"},"t_mapping(t_address,t_array(t_uint256)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256[])","numberOfBytes":"32","value":"t_array(t_uint256)dyn_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_struct(Proposal)73076_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct StrategyStruct.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)73076_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(PointSystemConfig)73084_storage":{"encoding":"inplace","label":"struct StrategyStruct.PointSystemConfig","numberOfBytes":"32","members":[{"astId":73083,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"maxAmount","offset":0,"slot":"0","type":"t_uint256"}]},"t_struct(Proposal)73076_storage":{"encoding":"inplace","label":"struct StrategyStruct.Proposal","numberOfBytes":"384","members":[{"astId":73051,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalId","offset":0,"slot":"0","type":"t_uint256"},{"astId":73053,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"requestedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":73055,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"stakedAmount","offset":0,"slot":"2","type":"t_uint256"},{"astId":73057,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"convictionLast","offset":0,"slot":"3","type":"t_uint256"},{"astId":73059,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"beneficiary","offset":0,"slot":"4","type":"t_address"},{"astId":73061,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"submitter","offset":0,"slot":"5","type":"t_address"},{"astId":73063,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"requestedToken","offset":0,"slot":"6","type":"t_address"},{"astId":73065,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"blockLast","offset":0,"slot":"7","type":"t_uint256"},{"astId":73068,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalStatus","offset":0,"slot":"8","type":"t_enum(ProposalStatus)73049"},{"astId":73072,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"voterStakedPoints","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"},{"astId":73075,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"metadata","offset":0,"slot":"10","type":"t_struct(Metadata)3098_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75791,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75790],"ERC165":[58322],"ERC20":[57039],"IAllo":[2610],"IERC165":[58528],"IPointStrategy":[73022],"Math":[59394],"Metadata":[3098],"RegistryCommunity":[77913],"StrategyStruct":[73113],"console":[29766]},"nodeType":"SourceUnit","src":"42:40063:127","nodes":[{"id":72977,"nodeType":"PragmaDirective","src":"42:24:127","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72980,"nodeType":"ImportDirective","src":"68:82:127","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72978,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72979,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72983,"nodeType":"ImportDirective","src":"152:68:127","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":77914,"symbolAliases":[{"foreign":{"id":72981,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"160:17:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72982,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72986,"nodeType":"ImportDirective","src":"221:87:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":58323,"symbolAliases":[{"foreign":{"id":72984,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58322,"src":"229:6:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72985,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"237:7:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72988,"nodeType":"ImportDirective","src":"309:68:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":57040,"symbolAliases":[{"foreign":{"id":72987,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"317:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72990,"nodeType":"ImportDirective","src":"379:46:127","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":29767,"symbolAliases":[{"foreign":{"id":72989,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"387:7:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72992,"nodeType":"ImportDirective","src":"427:65:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":59395,"symbolAliases":[{"foreign":{"id":72991,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"435:4:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73022,"nodeType":"ContractDefinition","src":"494:355:127","nodes":[{"id":72997,"nodeType":"FunctionDefinition","src":"525:52:127","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:127","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72994,"mutability":"mutable","name":"_member","nameLocation":"559:7:127","nodeType":"VariableDeclaration","scope":72997,"src":"551:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72993,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:127"},"returnParameters":{"id":72996,"nodeType":"ParameterList","parameters":[],"src":"576:0:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73006,"nodeType":"FunctionDefinition","src":"582:91:127","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:127","parameters":{"id":73002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72999,"mutability":"mutable","name":"_member","nameLocation":"613:7:127","nodeType":"VariableDeclaration","scope":73006,"src":"605:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72998,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73001,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:127","nodeType":"VariableDeclaration","scope":73006,"src":"622:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73000,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:127"},"returnParameters":{"id":73005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73006,"src":"664:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73003,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73015,"nodeType":"FunctionDefinition","src":"678:92:127","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:127","parameters":{"id":73011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73008,"mutability":"mutable","name":"_member","nameLocation":"709:7:127","nodeType":"VariableDeclaration","scope":73015,"src":"701:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73007,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73010,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:127","nodeType":"VariableDeclaration","scope":73015,"src":"718:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:127"},"returnParameters":{"id":73014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73015,"src":"761:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73012,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73021,"nodeType":"FunctionDefinition","src":"775:72:127","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:127","parameters":{"id":73016,"nodeType":"ParameterList","parameters":[],"src":"798:2:127"},"returnParameters":{"id":73020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73021,"src":"819:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73018,"nodeType":"UserDefinedTypeName","pathNode":{"id":73017,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:127","834:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"819:26:127"},"referencedDeclaration":73031,"src":"819:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[73022],"name":"IPointStrategy","nameLocation":"504:14:127","scope":75791,"usedErrors":[]},{"id":73113,"nodeType":"ContractDefinition","src":"851:1969:127","nodes":[{"id":73026,"nodeType":"EnumDefinition","src":"880:79:127","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":73023,"name":"Signaling","nameLocation":"908:9:127","nodeType":"EnumValue","src":"908:9:127"},{"id":73024,"name":"Funding","nameLocation":"927:7:127","nodeType":"EnumValue","src":"927:7:127"},{"id":73025,"name":"Streaming","nameLocation":"944:9:127","nodeType":"EnumValue","src":"944:9:127"}],"name":"ProposalType","nameLocation":"885:12:127"},{"id":73031,"nodeType":"EnumDefinition","src":"965:92:127","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":73027,"name":"Fixed","nameLocation":"992:5:127","nodeType":"EnumValue","src":"992:5:127"},{"id":73028,"name":"Capped","nameLocation":"1007:6:127","nodeType":"EnumValue","src":"1007:6:127"},{"id":73029,"name":"Unlimited","nameLocation":"1023:9:127","nodeType":"EnumValue","src":"1023:9:127"},{"id":73030,"name":"Quadratic","nameLocation":"1042:9:127","nodeType":"EnumValue","src":"1042:9:127"}],"name":"PointSystem","nameLocation":"970:11:127"},{"id":73043,"nodeType":"StructDefinition","src":"1063:243:127","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":73033,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:127","nodeType":"VariableDeclaration","scope":73043,"src":"1126:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73035,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:127","nodeType":"VariableDeclaration","scope":73043,"src":"1150:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73034,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73037,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:127","nodeType":"VariableDeclaration","scope":73043,"src":"1217:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73039,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:127","nodeType":"VariableDeclaration","scope":73043,"src":"1250:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73038,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73042,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:127","nodeType":"VariableDeclaration","scope":73043,"src":"1282:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":73041,"nodeType":"UserDefinedTypeName","pathNode":{"id":73040,"name":"Metadata","nameLocations":["1282:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:127"},"referencedDeclaration":3098,"src":"1282:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:127","scope":73113,"visibility":"public"},{"id":73049,"nodeType":"EnumDefinition","src":"1312:289:127","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":73044,"name":"Inactive","nameLocation":"1342:8:127","nodeType":"EnumValue","src":"1342:8:127"},{"id":73045,"name":"Active","nameLocation":"1372:6:127","nodeType":"EnumValue","src":"1372:6:127"},{"id":73046,"name":"Paused","nameLocation":"1435:6:127","nodeType":"EnumValue","src":"1435:6:127"},{"id":73047,"name":"Cancelled","nameLocation":"1500:9:127","nodeType":"EnumValue","src":"1500:9:127"},{"id":73048,"name":"Executed","nameLocation":"1553:8:127","nodeType":"EnumValue","src":"1553:8:127"}],"name":"ProposalStatus","nameLocation":"1317:14:127"},{"id":73076,"nodeType":"StructDefinition","src":"1607:405:127","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":73051,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:127","nodeType":"VariableDeclaration","scope":73076,"src":"1633:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73053,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:127","nodeType":"VariableDeclaration","scope":73076,"src":"1661:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73052,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73055,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:127","nodeType":"VariableDeclaration","scope":73076,"src":"1694:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73057,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1724:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73056,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73059,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:127","nodeType":"VariableDeclaration","scope":73076,"src":"1756:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73058,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73061,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:127","nodeType":"VariableDeclaration","scope":73076,"src":"1785:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73060,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73063,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1812:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73062,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73065,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:127","nodeType":"VariableDeclaration","scope":73076,"src":"1844:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73064,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73068,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1871:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":73067,"nodeType":"UserDefinedTypeName","pathNode":{"id":73066,"name":"ProposalStatus","nameLocations":["1871:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73049,"src":"1871:14:127"},"referencedDeclaration":73049,"src":"1871:14:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":73072,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:127","nodeType":"VariableDeclaration","scope":73076,"src":"1910:45:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73071,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73069,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73070,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":73075,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:127","nodeType":"VariableDeclaration","scope":73076,"src":"1988:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":73074,"nodeType":"UserDefinedTypeName","pathNode":{"id":73073,"name":"Metadata","nameLocations":["1988:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:127"},"referencedDeclaration":3098,"src":"1988:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:127","scope":73113,"visibility":"public"},{"id":73081,"nodeType":"StructDefinition","src":"2018:126:127","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":73078,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:127","nodeType":"VariableDeclaration","scope":73081,"src":"2051:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73077,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73080,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:127","nodeType":"VariableDeclaration","scope":73081,"src":"2079:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73079,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:127","scope":73113,"visibility":"public"},{"id":73084,"nodeType":"StructDefinition","src":"2150:89:127","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":73083,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:127","nodeType":"VariableDeclaration","scope":73084,"src":"2215:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73082,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:127","scope":73113,"visibility":"public"},{"id":73089,"nodeType":"StructDefinition","src":"2245:88:127","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":73086,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:127","nodeType":"VariableDeclaration","scope":73089,"src":"2274:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73085,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73088,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:127","nodeType":"VariableDeclaration","scope":73089,"src":"2309:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73087,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:127","scope":73113,"visibility":"public"},{"id":73112,"nodeType":"StructDefinition","src":"2339:479:127","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":73091,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:127","nodeType":"VariableDeclaration","scope":73112,"src":"2373:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73090,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73093,"mutability":"mutable","name":"decay","nameLocation":"2445:5:127","nodeType":"VariableDeclaration","scope":73112,"src":"2437:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73092,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73095,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:127","nodeType":"VariableDeclaration","scope":73112,"src":"2507:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73094,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73097,"mutability":"mutable","name":"weight","nameLocation":"2569:6:127","nodeType":"VariableDeclaration","scope":73112,"src":"2561:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73099,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:127","nodeType":"VariableDeclaration","scope":73112,"src":"2585:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73102,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:127","nodeType":"VariableDeclaration","scope":73112,"src":"2646:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73101,"nodeType":"UserDefinedTypeName","pathNode":{"id":73100,"name":"ProposalType","nameLocations":["2646:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"2646:12:127"},"referencedDeclaration":73026,"src":"2646:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":73105,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2716:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73104,"nodeType":"UserDefinedTypeName","pathNode":{"id":73103,"name":"PointSystem","nameLocations":["2716:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"2716:11:127"},"referencedDeclaration":73031,"src":"2716:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":73108,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2749:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73107,"nodeType":"UserDefinedTypeName","pathNode":{"id":73106,"name":"PointSystemConfig","nameLocations":["2749:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"2749:17:127"},"referencedDeclaration":73084,"src":"2749:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":73111,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2788:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$73089_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":73110,"nodeType":"UserDefinedTypeName","pathNode":{"id":73109,"name":"SybilConfig","nameLocations":["2788:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73089,"src":"2788:11:127"},"referencedDeclaration":73089,"src":"2788:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$73089_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:127","scope":73113,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[73113],"name":"StrategyStruct","nameLocation":"859:14:127","scope":75791,"usedErrors":[]},{"id":75790,"nodeType":"ContractDefinition","src":"2822:37282:127","nodes":[{"id":73122,"nodeType":"UsingForDirective","src":"2888:23:127","nodes":[],"global":false,"libraryName":{"id":73120,"name":"Math","nameLocations":["2894:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":59394,"src":"2894:4:127"},"typeName":{"id":73121,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":73124,"nodeType":"ErrorDefinition","src":"3082:25:127","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:127","parameters":{"id":73123,"nodeType":"ParameterList","parameters":[],"src":"3104:2:127"}},{"id":73126,"nodeType":"ErrorDefinition","src":"3126:26:127","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:127","parameters":{"id":73125,"nodeType":"ParameterList","parameters":[],"src":"3149:2:127"}},{"id":73128,"nodeType":"ErrorDefinition","src":"3170:23:127","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:127","parameters":{"id":73127,"nodeType":"ParameterList","parameters":[],"src":"3190:2:127"}},{"id":73130,"nodeType":"ErrorDefinition","src":"3212:20:127","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:127","parameters":{"id":73129,"nodeType":"ParameterList","parameters":[],"src":"3229:2:127"}},{"id":73132,"nodeType":"ErrorDefinition","src":"3251:23:127","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:127","parameters":{"id":73131,"nodeType":"ParameterList","parameters":[],"src":"3271:2:127"}},{"id":73134,"nodeType":"ErrorDefinition","src":"3292:26:127","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:127","parameters":{"id":73133,"nodeType":"ParameterList","parameters":[],"src":"3315:2:127"}},{"id":73136,"nodeType":"ErrorDefinition","src":"3336:24:127","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:127","parameters":{"id":73135,"nodeType":"ParameterList","parameters":[],"src":"3357:2:127"}},{"id":73138,"nodeType":"ErrorDefinition","src":"3379:27:127","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:127","parameters":{"id":73137,"nodeType":"ParameterList","parameters":[],"src":"3403:2:127"}},{"id":73140,"nodeType":"ErrorDefinition","src":"3425:27:127","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:127","parameters":{"id":73139,"nodeType":"ParameterList","parameters":[],"src":"3449:2:127"}},{"id":73142,"nodeType":"ErrorDefinition","src":"3470:28:127","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:127","parameters":{"id":73141,"nodeType":"ParameterList","parameters":[],"src":"3495:2:127"}},{"id":73144,"nodeType":"ErrorDefinition","src":"3516:29:127","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:127","parameters":{"id":73143,"nodeType":"ParameterList","parameters":[],"src":"3542:2:127"}},{"id":73152,"nodeType":"ErrorDefinition","src":"3564:72:127","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:127","parameters":{"id":73151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73146,"mutability":"mutable","name":"_support","nameLocation":"3595:8:127","nodeType":"VariableDeclaration","scope":73152,"src":"3587:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73145,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73148,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:127","nodeType":"VariableDeclaration","scope":73152,"src":"3605:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73147,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":73150,"mutability":"mutable","name":"_result","nameLocation":"3627:7:127","nodeType":"VariableDeclaration","scope":73152,"src":"3620:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73149,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:127"}},{"id":73154,"nodeType":"ErrorDefinition","src":"3655:25:127","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:127","parameters":{"id":73153,"nodeType":"ParameterList","parameters":[],"src":"3677:2:127"}},{"id":73156,"nodeType":"ErrorDefinition","src":"3699:32:127","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:127","parameters":{"id":73155,"nodeType":"ParameterList","parameters":[],"src":"3728:2:127"}},{"id":73162,"nodeType":"ErrorDefinition","src":"3750:77:127","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:127","parameters":{"id":73161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73158,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:127","nodeType":"VariableDeclaration","scope":73162,"src":"3781:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73157,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73160,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:127","nodeType":"VariableDeclaration","scope":73162,"src":"3804:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73159,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:127"}},{"id":73164,"nodeType":"ErrorDefinition","src":"3847:28:127","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:127","parameters":{"id":73163,"nodeType":"ParameterList","parameters":[],"src":"3872:2:127"}},{"id":73166,"nodeType":"ErrorDefinition","src":"3893:31:127","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:127","parameters":{"id":73165,"nodeType":"ParameterList","parameters":[],"src":"3921:2:127"}},{"id":73170,"nodeType":"ErrorDefinition","src":"3942:45:127","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:127","parameters":{"id":73169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73168,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:127","nodeType":"VariableDeclaration","scope":73170,"src":"3966:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73167,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:127"}},{"id":73174,"nodeType":"ErrorDefinition","src":"4006:45:127","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:127","parameters":{"id":73173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73172,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:127","nodeType":"VariableDeclaration","scope":73174,"src":"4030:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73171,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:127"}},{"id":73180,"nodeType":"ErrorDefinition","src":"4070:68:127","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:127","parameters":{"id":73179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73176,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:127","nodeType":"VariableDeclaration","scope":73180,"src":"4102:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73175,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73178,"mutability":"mutable","name":"index","nameLocation":"4131:5:127","nodeType":"VariableDeclaration","scope":73180,"src":"4123:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73177,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:127"}},{"id":73182,"nodeType":"ErrorDefinition","src":"4156:40:127","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:127","parameters":{"id":73181,"nodeType":"ParameterList","parameters":[],"src":"4193:2:127"}},{"id":73184,"nodeType":"ErrorDefinition","src":"4215:29:127","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:127","parameters":{"id":73183,"nodeType":"ParameterList","parameters":[],"src":"4241:2:127"}},{"id":73192,"nodeType":"ErrorDefinition","src":"4263:94:127","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:127","parameters":{"id":73191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73186,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:127","nodeType":"VariableDeclaration","scope":73192,"src":"4289:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73185,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73188,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:127","nodeType":"VariableDeclaration","scope":73192,"src":"4310:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73187,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73190,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:127","nodeType":"VariableDeclaration","scope":73192,"src":"4336:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73189,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:127"}},{"id":73199,"nodeType":"EventDefinition","src":"4542:74:127","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:127","parameters":{"id":73198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73194,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:127","nodeType":"VariableDeclaration","scope":73199,"src":"4562:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73193,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73197,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:127","nodeType":"VariableDeclaration","scope":73199,"src":"4578:36:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73196,"nodeType":"UserDefinedTypeName","pathNode":{"id":73195,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:127","4593:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"4578:31:127"},"referencedDeclaration":73112,"src":"4578:31:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:127"}},{"id":73207,"nodeType":"EventDefinition","src":"4621:75:127","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:127","parameters":{"id":73206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73201,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:127","nodeType":"VariableDeclaration","scope":73207,"src":"4639:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73200,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73203,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:127","nodeType":"VariableDeclaration","scope":73207,"src":"4659:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73202,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73205,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:127","nodeType":"VariableDeclaration","scope":73207,"src":"4680:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73204,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:127"}},{"id":73213,"nodeType":"EventDefinition","src":"4701:58:127","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:127","parameters":{"id":73212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73209,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:127","nodeType":"VariableDeclaration","scope":73213,"src":"4723:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73208,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73211,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:127","nodeType":"VariableDeclaration","scope":73213,"src":"4739:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73210,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:127"}},{"id":73217,"nodeType":"EventDefinition","src":"4764:42:127","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:127","parameters":{"id":73216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73215,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:127","nodeType":"VariableDeclaration","scope":73217,"src":"4790:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73214,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:127"}},{"id":73225,"nodeType":"EventDefinition","src":"4811:85:127","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:127","parameters":{"id":73224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73219,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:127","nodeType":"VariableDeclaration","scope":73225,"src":"4832:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73218,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73221,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:127","nodeType":"VariableDeclaration","scope":73225,"src":"4848:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73220,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73223,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:127","nodeType":"VariableDeclaration","scope":73225,"src":"4870:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73222,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:127"}},{"id":73233,"nodeType":"EventDefinition","src":"4901:87:127","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:127","parameters":{"id":73232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73227,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:127","nodeType":"VariableDeclaration","scope":73233,"src":"4922:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73226,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73229,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:127","nodeType":"VariableDeclaration","scope":73233,"src":"4938:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73228,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73231,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:127","nodeType":"VariableDeclaration","scope":73233,"src":"4962:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73230,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:127"}},{"id":73245,"nodeType":"EventDefinition","src":"4993:134:127","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:127","parameters":{"id":73244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73235,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:127","nodeType":"VariableDeclaration","scope":73245,"src":"5021:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73234,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73237,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:127","nodeType":"VariableDeclaration","scope":73245,"src":"5035:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73236,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73239,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:127","nodeType":"VariableDeclaration","scope":73245,"src":"5055:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73238,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73241,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:127","nodeType":"VariableDeclaration","scope":73245,"src":"5071:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73240,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73243,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:127","nodeType":"VariableDeclaration","scope":73245,"src":"5098:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73242,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:127"}},{"id":73249,"nodeType":"EventDefinition","src":"5132:40:127","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:127","parameters":{"id":73248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73247,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:127","nodeType":"VariableDeclaration","scope":73249,"src":"5156:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73246,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:127"}},{"id":73253,"nodeType":"EventDefinition","src":"5177:34:127","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:127","parameters":{"id":73252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73251,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:127","nodeType":"VariableDeclaration","scope":73253,"src":"5196:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73250,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:127"}},{"id":73257,"nodeType":"EventDefinition","src":"5216:40:127","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:127","parameters":{"id":73256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73255,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:127","nodeType":"VariableDeclaration","scope":73257,"src":"5238:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73254,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:127"}},{"id":73261,"nodeType":"EventDefinition","src":"5261:36:127","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:127","parameters":{"id":73260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73259,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:127","nodeType":"VariableDeclaration","scope":73261,"src":"5281:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73258,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:127"}},{"id":73265,"nodeType":"EventDefinition","src":"5302:49:127","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:127","parameters":{"id":73264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73263,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:127","nodeType":"VariableDeclaration","scope":73265,"src":"5324:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73262,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:127"}},{"id":73271,"nodeType":"EventDefinition","src":"5356:76:127","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:127","parameters":{"id":73270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73267,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:127","nodeType":"VariableDeclaration","scope":73271,"src":"5388:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73266,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73269,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:127","nodeType":"VariableDeclaration","scope":73271,"src":"5404:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73268,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:127"}},{"id":73274,"nodeType":"VariableDeclaration","src":"5806:36:127","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73272,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:127","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73277,"nodeType":"VariableDeclaration","src":"5856:70:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73275,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:127","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73280,"nodeType":"VariableDeclaration","src":"5942:69:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73278,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:127","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73283,"nodeType":"VariableDeclaration","src":"6027:53:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73281,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73286,"nodeType":"VariableDeclaration","src":"6095:49:127","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73284,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73288,"nodeType":"VariableDeclaration","src":"6272:20:127","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73287,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73290,"nodeType":"VariableDeclaration","src":"6298:23:127","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73289,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73292,"nodeType":"VariableDeclaration","src":"6327:21:127","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73291,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73295,"nodeType":"VariableDeclaration","src":"6354:34:127","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73293,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73297,"nodeType":"VariableDeclaration","src":"6394:26:127","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73296,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73299,"nodeType":"VariableDeclaration","src":"6426:35:127","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73298,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73302,"nodeType":"VariableDeclaration","src":"6467:38:127","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73300,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73304,"nodeType":"VariableDeclaration","src":"6546:47:127","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73303,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73307,"nodeType":"VariableDeclaration","src":"6678:47:127","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73306,"nodeType":"UserDefinedTypeName","pathNode":{"id":73305,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:127","6693:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"6678:27:127"},"referencedDeclaration":73026,"src":"6678:27:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73310,"nodeType":"VariableDeclaration","src":"6784:45:127","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73309,"nodeType":"UserDefinedTypeName","pathNode":{"id":73308,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:127","6799:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"6784:26:127"},"referencedDeclaration":73031,"src":"6784:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73313,"nodeType":"VariableDeclaration","src":"6835:51:127","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73312,"nodeType":"UserDefinedTypeName","pathNode":{"id":73311,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:127","6850:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"6835:32:127"},"referencedDeclaration":73084,"src":"6835:32:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73316,"nodeType":"VariableDeclaration","src":"6919:42:127","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"},"typeName":{"id":73315,"nodeType":"UserDefinedTypeName","pathNode":{"id":73314,"name":"RegistryCommunity","nameLocations":["6919:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"6919:17:127"},"referencedDeclaration":77913,"src":"6919:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73321,"nodeType":"VariableDeclaration","src":"7028:60:127","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73320,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73317,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73319,"nodeType":"UserDefinedTypeName","pathNode":{"id":73318,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:127","7062:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"7047:23:127"},"referencedDeclaration":73076,"src":"7047:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73325,"nodeType":"VariableDeclaration","src":"7144:53:127","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73324,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73322,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73323,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73330,"nodeType":"VariableDeclaration","src":"7235:57:127","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73329,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73326,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73327,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73328,"nodeType":"ArrayTypeName","src":"7254:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73343,"nodeType":"FunctionDefinition","src":"7496:72:127","nodes":[],"body":{"id":73342,"nodeType":"Block","src":"7566:2:127","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73337,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73332,"src":"7544:5:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73335,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:127","typeDescriptions":{}}},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73340,"kind":"baseConstructorSpecifier","modifierName":{"id":73334,"name":"BaseStrategy","nameLocations":["7523:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:127"},"nodeType":"ModifierInvocation","src":"7523:42:127"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73332,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:127","nodeType":"VariableDeclaration","scope":73343,"src":"7508:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73331,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:127"},"returnParameters":{"id":73341,"nodeType":"ParameterList","parameters":[],"src":"7566:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73427,"nodeType":"FunctionDefinition","src":"7574:1028:127","nodes":[],"body":{"id":73426,"nodeType":"Block","src":"7640:962:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":73351,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73345,"src":"7670:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73350,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73353,"nodeType":"ExpressionStatement","src":"7650:28:127"},{"assignments":[73358],"declarations":[{"constant":false,"id":73358,"mutability":"mutable","name":"ip","nameLocation":"7727:2:127","nodeType":"VariableDeclaration","scope":73426,"src":"7688:41:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73357,"nodeType":"UserDefinedTypeName","pathNode":{"id":73356,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:127","7703:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"7688:31:127"},"referencedDeclaration":73112,"src":"7688:31:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73366,"initialValue":{"arguments":[{"id":73361,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73347,"src":"7743:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73362,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"7751:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:127","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":73112,"src":"7751:31:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73359,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:127","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73367,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8139:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:127","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"8139:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:127","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":73370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73369,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:127","typeDescriptions":{}}},"id":73372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73378,"nodeType":"IfStatement","src":"8135:94:127","trueBody":{"id":73377,"nodeType":"Block","src":"8175:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73374,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73144,"src":"8196:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73376,"nodeType":"RevertStatement","src":"8189:29:127"}]}},{"expression":{"id":73384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73379,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"8239:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73381,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8277:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:127","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"8277:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73380,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"8259:17:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77913_$","typeString":"type(contract RegistryCommunity)"}},"id":73383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"src":"8239:59:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73385,"nodeType":"ExpressionStatement","src":"8239:59:127"},{"expression":{"id":73389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73386,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"8308:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73387,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8316:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:127","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":73093,"src":"8316:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73390,"nodeType":"ExpressionStatement","src":"8308:16:127"},{"expression":{"id":73394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73391,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"8334:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73392,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8345:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:127","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":73095,"src":"8345:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73395,"nodeType":"ExpressionStatement","src":"8334:22:127"},{"expression":{"id":73399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73396,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"8366:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73397,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8375:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:127","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":73097,"src":"8375:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73400,"nodeType":"ExpressionStatement","src":"8366:18:127"},{"expression":{"id":73404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73401,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"8394:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73402,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8409:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:127","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73102,"src":"8409:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"id":73405,"nodeType":"ExpressionStatement","src":"8394:30:127"},{"expression":{"id":73409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73406,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"8434:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73407,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8448:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:127","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":73105,"src":"8448:14:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"id":73410,"nodeType":"ExpressionStatement","src":"8434:28:127"},{"expression":{"id":73414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73411,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"8472:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73412,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8486:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:127","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":73108,"src":"8486:14:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73415,"nodeType":"ExpressionStatement","src":"8472:28:127"},{"expression":{"id":73419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73416,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"8510:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73417,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8532:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:127","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":73099,"src":"8532:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73420,"nodeType":"ExpressionStatement","src":"8510:43:127"},{"eventCall":{"arguments":[{"id":73422,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73345,"src":"8583:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73423,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8592:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73421,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73199,"src":"8569:13:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$73112_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73425,"nodeType":"EmitStatement","src":"8564:31:127"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:127","parameters":{"id":73348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73345,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:127","nodeType":"VariableDeclaration","scope":73427,"src":"7594:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73344,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73347,"mutability":"mutable","name":"_data","nameLocation":"7624:5:127","nodeType":"VariableDeclaration","scope":73427,"src":"7611:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73346,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:127"},"returnParameters":{"id":73349,"nodeType":"ParameterList","parameters":[],"src":"7640:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73431,"nodeType":"FunctionDefinition","src":"8773:83:127","nodes":[],"body":{"id":73430,"nodeType":"Block","src":"8801:55:127","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73428,"nodeType":"ParameterList","parameters":[],"src":"8781:2:127"},"returnParameters":{"id":73429,"nodeType":"ParameterList","parameters":[],"src":"8801:0:127"},"scope":75790,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73435,"nodeType":"FunctionDefinition","src":"8862:135:127","nodes":[],"body":{"id":73434,"nodeType":"Block","src":"8889:108:127","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73432,"nodeType":"ParameterList","parameters":[],"src":"8869:2:127"},"returnParameters":{"id":73433,"nodeType":"ParameterList","parameters":[],"src":"8889:0:127"},"scope":75790,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73456,"nodeType":"FunctionDefinition","src":"9003:202:127","nodes":[],"body":{"id":73455,"nodeType":"Block","src":"9094:111:127","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73443,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73437,"src":"9111:11:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73445,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"9131:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":73444,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:127","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:127","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73451,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73437,"src":"9186:11:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73449,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75790_$","typeString":"type(contract super CVStrategy)"}},"id":73450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:127","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58321,"src":"9162:23:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73442,"id":73454,"nodeType":"Return","src":"9104:94:127"}]},"baseFunctions":[58321],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:127","overrides":{"id":73439,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:127"},"parameters":{"id":73438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73437,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:127","nodeType":"VariableDeclaration","scope":73456,"src":"9030:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73436,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:127"},"returnParameters":{"id":73442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73456,"src":"9088:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73440,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:127"},"scope":75790,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73497,"nodeType":"FunctionDefinition","src":"9376:377:127","nodes":[],"body":{"id":73496,"nodeType":"Block","src":"9435:318:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73461,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73458,"src":"9449:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:127","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":73463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73462,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:127","typeDescriptions":{}}},"id":73465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73471,"nodeType":"IfStatement","src":"9445:77:127","trueBody":{"id":73470,"nodeType":"Block","src":"9472:50:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73467,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"9493:16:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73469,"nodeType":"RevertStatement","src":"9486:25:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73474,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9543:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":73473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73472,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:127","typeDescriptions":{}}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:127","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":73477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73476,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:127","typeDescriptions":{}}},"id":73479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73485,"nodeType":"IfStatement","src":"9531:100:127","trueBody":{"id":73484,"nodeType":"Block","src":"9577:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73481,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73144,"src":"9598:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73483,"nodeType":"RevertStatement","src":"9591:29:127"}]}},{"condition":{"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:127","subExpression":{"arguments":[{"id":73488,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73458,"src":"9672:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73486,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9645:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:127","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77494,"src":"9645:26:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73495,"nodeType":"IfStatement","src":"9640:93:127","trueBody":{"id":73494,"nodeType":"Block","src":"9682:51:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73491,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73126,"src":"9703:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73493,"nodeType":"RevertStatement","src":"9696:26:127"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:127","parameters":{"id":73459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73458,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:127","nodeType":"VariableDeclaration","scope":73497,"src":"9405:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73457,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:127"},"returnParameters":{"id":73460,"nodeType":"ParameterList","parameters":[],"src":"9435:0:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73513,"nodeType":"FunctionDefinition","src":"9759:162:127","nodes":[],"body":{"id":73512,"nodeType":"Block","src":"9805:116:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:127","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73504,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9841:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":73503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73502,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:127","typeDescriptions":{}}},"id":73505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"9815:100:127","trueBody":{"id":73510,"nodeType":"Block","src":"9861:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73507,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73184,"src":"9882:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"RevertStatement","src":"9875:29:127"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:127","parameters":{"id":73498,"nodeType":"ParameterList","parameters":[],"src":"9789:2:127"},"returnParameters":{"id":73499,"nodeType":"ParameterList","parameters":[],"src":"9805:0:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73529,"nodeType":"FunctionDefinition","src":"9927:132:127","nodes":[],"body":{"id":73528,"nodeType":"Block","src":"9986:73:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73518,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73515,"src":"10000:8:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:127","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":73520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73519,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:127","typeDescriptions":{}}},"id":73522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73527,"nodeType":"IfStatement","src":"9996:56:127","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73524,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73142,"src":"10031:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73526,"nodeType":"RevertStatement","src":"10024:28:127"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:127","parameters":{"id":73516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73515,"mutability":"mutable","name":"_address","nameLocation":"9962:8:127","nodeType":"VariableDeclaration","scope":73529,"src":"9954:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73514,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:127"},"returnParameters":{"id":73517,"nodeType":"ParameterList","parameters":[],"src":"9986:0:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73704,"nodeType":"FunctionDefinition","src":"10385:1945:127","nodes":[],"body":{"id":73703,"nodeType":"Block","src":"10486:1844:127","nodes":[],"statements":[{"expression":{"id":73539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73531,"src":"10541:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73540,"nodeType":"ExpressionStatement","src":"10541:5:127"},{"assignments":[73545],"declarations":[{"constant":false,"id":73545,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:127","nodeType":"VariableDeclaration","scope":73703,"src":"10556:45:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73544,"nodeType":"UserDefinedTypeName","pathNode":{"id":73543,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:127","10571:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73043,"src":"10556:29:127"},"referencedDeclaration":73043,"src":"10556:29:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73553,"initialValue":{"arguments":[{"id":73548,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73531,"src":"10615:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73549,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"10623:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:127","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":73043,"src":"10623:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73551,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:127","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73554,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"10769:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:127","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":73033,"src":"10769:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73562,"nodeType":"IfStatement","src":"10765:78:127","trueBody":{"id":73561,"nodeType":"Block","src":"10791:52:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73558,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73140,"src":"10812:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"RevertStatement","src":"10805:27:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":73567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73563,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"10919:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73564,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"10935:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:127","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":73026,"src":"10935:27:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$73026_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:127","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":73024,"src":"10935:35:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73614,"nodeType":"IfStatement","src":"10915:721:127","trueBody":{"id":73613,"nodeType":"Block","src":"10972:664:127","statements":[{"expression":{"arguments":[{"expression":{"id":73569,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11004:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73035,"src":"11004:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73568,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"10986:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73572,"nodeType":"ExpressionStatement","src":"10986:39:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73573,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11091:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11091:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:127","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":73576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73575,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:127","typeDescriptions":{}}},"id":73578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73584,"nodeType":"IfStatement","src":"11087:102:127","trueBody":{"id":73583,"nodeType":"Block","src":"11130:59:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73580,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73134,"src":"11155:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73582,"nodeType":"RevertStatement","src":"11148:26:127"}]}},{"assignments":[73586],"declarations":[{"constant":false,"id":73586,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:127","nodeType":"VariableDeclaration","scope":73613,"src":"11202:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73585,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73594,"initialValue":{"expression":{"arguments":[{"id":73591,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73587,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}},"id":73588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:127","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:127","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:127","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73595,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11276:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11276:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73597,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73586,"src":"11303:9:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73603,"nodeType":"IfStatement","src":"11272:234:127","trueBody":{"id":73602,"nodeType":"Block","src":"11314:192:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73599,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73136,"src":"11474:15:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73601,"nodeType":"RevertStatement","src":"11467:24:127"}]}},{"condition":{"arguments":[{"expression":{"id":73605,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11539:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:127","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":73037,"src":"11539:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73604,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74871,"src":"11523:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73612,"nodeType":"IfStatement","src":"11519:107:127","trueBody":{"id":73611,"nodeType":"Block","src":"11566:60:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73608,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73138,"src":"11591:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73610,"nodeType":"RevertStatement","src":"11584:27:127"}]}}]}},{"assignments":[73616],"declarations":[{"constant":false,"id":73616,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:127","nodeType":"VariableDeclaration","scope":73703,"src":"11645:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73615,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73619,"initialValue":{"id":73618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:127","subExpression":{"id":73617,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73295,"src":"11668:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:127"},{"assignments":[73624],"declarations":[{"constant":false,"id":73624,"mutability":"mutable","name":"p","nameLocation":"11725:1:127","nodeType":"VariableDeclaration","scope":73703,"src":"11693:33:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73623,"nodeType":"UserDefinedTypeName","pathNode":{"id":73622,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:127","11708:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"11693:23:127"},"referencedDeclaration":73076,"src":"11693:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73628,"initialValue":{"baseExpression":{"id":73625,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"11729:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73627,"indexExpression":{"id":73626,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"11739:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:127"},{"expression":{"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73629,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11761:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"11761:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73632,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"11776:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73634,"nodeType":"ExpressionStatement","src":"11761:25:127"},{"expression":{"id":73639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73635,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11796:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"11796:11:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73638,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73533,"src":"11810:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73640,"nodeType":"ExpressionStatement","src":"11796:21:127"},{"expression":{"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73641,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11827:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"11827:13:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11843:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73035,"src":"11843:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73647,"nodeType":"ExpressionStatement","src":"11827:36:127"},{"expression":{"id":73653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73648,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11873:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73063,"src":"11873:16:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73651,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11892:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11892:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73654,"nodeType":"ExpressionStatement","src":"11873:42:127"},{"expression":{"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73655,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11925:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"11925:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73658,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11945:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:127","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":73037,"src":"11945:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73661,"nodeType":"ExpressionStatement","src":"11925:44:127"},{"expression":{"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73662,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12030:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"12030:16:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73665,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"12049:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"12049:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"12049:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73669,"nodeType":"ExpressionStatement","src":"12030:55:127"},{"expression":{"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73670,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12095:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"12095:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73673,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:127","memberName":"number","nodeType":"MemberAccess","src":"12109:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73676,"nodeType":"ExpressionStatement","src":"12095:26:127"},{"expression":{"id":73681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73677,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12131:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"12131:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73682,"nodeType":"ExpressionStatement","src":"12131:20:127"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73683,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12197:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73075,"src":"12197:10:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73686,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"12210:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73042,"src":"12210:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73689,"nodeType":"ExpressionStatement","src":"12197:30:127"},{"eventCall":{"arguments":[{"id":73691,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73692,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"12267:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73690,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73213,"src":"12243:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73694,"nodeType":"EmitStatement","src":"12238:40:127"},{"expression":{"arguments":[{"arguments":[{"id":73699,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"12311:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73697,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:127","typeDescriptions":{}}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73695,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:127","typeDescriptions":{}}},"id":73701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73538,"id":73702,"nodeType":"Return","src":"12288:35:127"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:127","overrides":{"id":73535,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:127"},"parameters":{"id":73534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73531,"mutability":"mutable","name":"_data","nameLocation":"10426:5:127","nodeType":"VariableDeclaration","scope":73704,"src":"10413:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73530,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73533,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:127","nodeType":"VariableDeclaration","scope":73704,"src":"10433:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73532,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:127"},"returnParameters":{"id":73538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73704,"src":"10477:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73734,"nodeType":"FunctionDefinition","src":"12336:253:127","nodes":[],"body":{"id":73733,"nodeType":"Block","src":"12371:218:127","nodes":[],"statements":[{"assignments":[73708],"declarations":[{"constant":false,"id":73708,"mutability":"mutable","name":"member","nameLocation":"12389:6:127","nodeType":"VariableDeclaration","scope":73733,"src":"12381:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73707,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73711,"initialValue":{"expression":{"id":73709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:127","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:127"},{"expression":{"arguments":[{"id":73715,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"12461:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73718,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73716,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:127","typeDescriptions":{}}},"id":73719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73712,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12418:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:127","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76872,"src":"12418:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73721,"nodeType":"ExpressionStatement","src":"12418:65:127"},{"expression":{"id":73731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73722,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"12493:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73725,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"12560:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73728,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73726,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:127","typeDescriptions":{}}},"id":73729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73723,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12517:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"12517:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73732,"nodeType":"ExpressionStatement","src":"12493:89:127"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:127","parameters":{"id":73705,"nodeType":"ParameterList","parameters":[],"src":"12359:2:127"},"returnParameters":{"id":73706,"nodeType":"ParameterList","parameters":[],"src":"12371:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73743,"nodeType":"FunctionDefinition","src":"12595:81:127","nodes":[],"body":{"id":73742,"nodeType":"Block","src":"12630:46:127","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73738,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:127","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73737,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"12640:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73741,"nodeType":"ExpressionStatement","src":"12640:29:127"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:127","parameters":{"id":73735,"nodeType":"ParameterList","parameters":[],"src":"12620:2:127"},"returnParameters":{"id":73736,"nodeType":"ParameterList","parameters":[],"src":"12630:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73756,"nodeType":"FunctionDefinition","src":"12682:128:127","nodes":[],"body":{"id":73755,"nodeType":"Block","src":"12734:76:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73748,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"12744:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73750,"nodeType":"ExpressionStatement","src":"12744:23:127"},{"expression":{"arguments":[{"id":73752,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73745,"src":"12795:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73751,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"12777:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73754,"nodeType":"ExpressionStatement","src":"12777:26:127"}]},"baseFunctions":[72997],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:127","parameters":{"id":73746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73745,"mutability":"mutable","name":"_member","nameLocation":"12716:7:127","nodeType":"VariableDeclaration","scope":73756,"src":"12708:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73744,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:127"},"returnParameters":{"id":73747,"nodeType":"ParameterList","parameters":[],"src":"12734:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73791,"nodeType":"FunctionDefinition","src":"12816:351:127","nodes":[],"body":{"id":73790,"nodeType":"Block","src":"12869:298:127","nodes":[],"statements":[{"expression":{"id":73770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73761,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"12879:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73764,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"12946:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73767,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73765,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:127","typeDescriptions":{}}},"id":73768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73762,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12903:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"12903:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73771,"nodeType":"ExpressionStatement","src":"12879:90:127"},{"expression":{"arguments":[{"id":73775,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13024:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73776,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:127","typeDescriptions":{}}},"id":73779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73772,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12979:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:127","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76931,"src":"12979:44:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73781,"nodeType":"ExpressionStatement","src":"12979:68:127"},{"expression":{"arguments":[{"id":73783,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13111:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73782,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74665,"src":"13102:8:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73785,"nodeType":"ExpressionStatement","src":"13102:17:127"},{"eventCall":{"arguments":[{"id":73787,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13152:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73786,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73249,"src":"13134:17:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73789,"nodeType":"EmitStatement","src":"13129:31:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:127","parameters":{"id":73759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73758,"mutability":"mutable","name":"_member","nameLocation":"12851:7:127","nodeType":"VariableDeclaration","scope":73791,"src":"12843:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73757,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:127"},"returnParameters":{"id":73760,"nodeType":"ParameterList","parameters":[],"src":"12869:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73875,"nodeType":"FunctionDefinition","src":"13173:958:127","nodes":[],"body":{"id":73874,"nodeType":"Block","src":"13264:867:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73800,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"13319:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73802,"nodeType":"ExpressionStatement","src":"13319:23:127"},{"assignments":[73804],"declarations":[{"constant":false,"id":73804,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:127","nodeType":"VariableDeclaration","scope":73874,"src":"13352:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73803,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73806,"initialValue":{"hexValue":"30","id":73805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:127"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73807,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13394:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73808,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13409:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13409:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:127","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":73029,"src":"13409:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73819,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13539:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73820,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13554:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13554:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:127","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":73028,"src":"13554:33:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73832,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13687:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73833,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13702:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13702:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:127","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":73030,"src":"13702:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73845,"nodeType":"IfStatement","src":"13683:148:127","trueBody":{"id":73844,"nodeType":"Block","src":"13740:91:127","statements":[{"expression":{"id":73842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73837,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13754:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73839,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13796:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73840,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13805:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73838,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74088,"src":"13773:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73843,"nodeType":"ExpressionStatement","src":"13754:66:127"}]}},"id":73846,"nodeType":"IfStatement","src":"13535:296:127","trueBody":{"id":73831,"nodeType":"Block","src":"13589:88:127","statements":[{"expression":{"id":73829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73824,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13603:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73826,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13642:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73827,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13651:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73825,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"13622:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73830,"nodeType":"ExpressionStatement","src":"13603:63:127"}]}},"id":73847,"nodeType":"IfStatement","src":"13390:441:127","trueBody":{"id":73818,"nodeType":"Block","src":"13447:82:127","statements":[{"expression":{"id":73816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73812,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13461:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73814,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13503:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73813,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73941,"src":"13480:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73817,"nodeType":"ExpressionStatement","src":"13461:57:127"}]}},{"assignments":[73849],"declarations":[{"constant":false,"id":73849,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:127","nodeType":"VariableDeclaration","scope":73874,"src":"13840:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73848,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73858,"initialValue":{"arguments":[{"id":73852,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13905:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73855,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73853,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:127","typeDescriptions":{}}},"id":73856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73850,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"13859:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:127","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76406,"src":"13859:45:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:127"},{"condition":{"id":73859,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73849,"src":"13942:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73865,"nodeType":"IfStatement","src":"13938:82:127","trueBody":{"id":73864,"nodeType":"Block","src":"13955:65:127","statements":[{"expression":{"id":73862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73860,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"13969:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73861,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13993:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73863,"nodeType":"ExpressionStatement","src":"13969:40:127"}]}},{"eventCall":{"arguments":[{"id":73867,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"14049:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73868,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"14058:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73869,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"14074:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73866,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73225,"src":"14034:14:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73871,"nodeType":"EmitStatement","src":"14029:62:127"},{"expression":{"id":73872,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"14108:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73799,"id":73873,"nodeType":"Return","src":"14101:23:127"}]},"baseFunctions":[73006],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:127","parameters":{"id":73796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73793,"mutability":"mutable","name":"_member","nameLocation":"13204:7:127","nodeType":"VariableDeclaration","scope":73875,"src":"13196:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73792,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73795,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:127","nodeType":"VariableDeclaration","scope":73875,"src":"13213:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73794,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:127"},"returnParameters":{"id":73799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73875,"src":"13255:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73797,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73931,"nodeType":"FunctionDefinition","src":"14137:681:127","nodes":[],"body":{"id":73930,"nodeType":"Block","src":"14230:588:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73884,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"14240:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73886,"nodeType":"ExpressionStatement","src":"14240:23:127"},{"assignments":[73888],"declarations":[{"constant":false,"id":73888,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:127","nodeType":"VariableDeclaration","scope":73930,"src":"14319:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73887,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73890,"initialValue":{"hexValue":"30","id":73889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73891,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"14361:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73892,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"14376:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"14376:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:127","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":73029,"src":"14376:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73896,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"14416:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73897,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"14431:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"14431:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:127","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":73028,"src":"14431:33:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73916,"nodeType":"Block","src":"14562:93:127","statements":[{"expression":{"id":73914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73909,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14576:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73911,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14618:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73912,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14627:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73910,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74192,"src":"14595:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73915,"nodeType":"ExpressionStatement","src":"14576:68:127"}]},"id":73917,"nodeType":"IfStatement","src":"14357:298:127","trueBody":{"id":73908,"nodeType":"Block","src":"14466:90:127","statements":[{"expression":{"id":73906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73902,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14480:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73904,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14528:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73903,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"14499:28:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73907,"nodeType":"ExpressionStatement","src":"14480:65:127"}]}},{"expression":{"id":73920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73918,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"14664:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73919,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14688:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73921,"nodeType":"ExpressionStatement","src":"14664:40:127"},{"eventCall":{"arguments":[{"id":73923,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14734:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73924,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14743:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73925,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14761:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73922,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73233,"src":"14719:14:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73927,"nodeType":"EmitStatement","src":"14714:64:127"},{"expression":{"id":73928,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14795:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73883,"id":73929,"nodeType":"Return","src":"14788:23:127"}]},"baseFunctions":[73015],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:127","parameters":{"id":73880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73877,"mutability":"mutable","name":"_member","nameLocation":"14168:7:127","nodeType":"VariableDeclaration","scope":73931,"src":"14160:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73876,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73879,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:127","nodeType":"VariableDeclaration","scope":73931,"src":"14177:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73878,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:127"},"returnParameters":{"id":73883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73931,"src":"14221:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73881,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73941,"nodeType":"FunctionDefinition","src":"14824:126:127","nodes":[],"body":{"id":73940,"nodeType":"Block","src":"14912:38:127","nodes":[],"statements":[{"expression":{"id":73938,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73933,"src":"14929:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73937,"id":73939,"nodeType":"Return","src":"14922:21:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:127","parameters":{"id":73934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73933,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:127","nodeType":"VariableDeclaration","scope":73941,"src":"14856:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73932,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:127"},"returnParameters":{"id":73937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73941,"src":"14903:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73935,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74004,"nodeType":"FunctionDefinition","src":"14956:615:127","nodes":[],"body":{"id":74003,"nodeType":"Block","src":"15058:513:127","nodes":[],"statements":[{"assignments":[73951],"declarations":[{"constant":false,"id":73951,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:127","nodeType":"VariableDeclaration","scope":74003,"src":"15068:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73950,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73953,"initialValue":{"id":73952,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73945,"src":"15095:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:127"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73958,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15153:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73954,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15119:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15119:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73960,"nodeType":"ExpressionStatement","src":"15119:51:127"},{"assignments":[73962],"declarations":[{"constant":false,"id":73962,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:127","nodeType":"VariableDeclaration","scope":74003,"src":"15180:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73961,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73971,"initialValue":{"arguments":[{"id":73965,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73943,"src":"15245:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73968,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73966,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:127","typeDescriptions":{}}},"id":73969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73963,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15202:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"15202:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:127"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73976,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15305:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73972,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15278:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15278:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73978,"nodeType":"ExpressionStatement","src":"15278:39:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73979,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15331:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73980,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15345:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73982,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"15364:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"15364:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73993,"nodeType":"IfStatement","src":"15327:139:127","trueBody":{"id":73992,"nodeType":"Block","src":"15387:79:127","statements":[{"expression":{"id":73990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73985,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15401:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73986,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"15420:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"15420:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73988,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15444:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73991,"nodeType":"ExpressionStatement","src":"15401:54:127"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73998,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15513:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73994,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15475:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15475:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74000,"nodeType":"ExpressionStatement","src":"15475:55:127"},{"expression":{"id":74001,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15548:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73949,"id":74002,"nodeType":"Return","src":"15541:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:127","parameters":{"id":73946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73943,"mutability":"mutable","name":"_member","nameLocation":"14993:7:127","nodeType":"VariableDeclaration","scope":74004,"src":"14985:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73942,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73945,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:127","nodeType":"VariableDeclaration","scope":74004,"src":"15002:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73944,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:127"},"returnParameters":{"id":73949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74004,"src":"15049:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73947,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74088,"nodeType":"FunctionDefinition","src":"15577:730:127","nodes":[],"body":{"id":74087,"nodeType":"Block","src":"15682:625:127","nodes":[],"statements":[{"assignments":[74014],"declarations":[{"constant":false,"id":74014,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:127","nodeType":"VariableDeclaration","scope":74087,"src":"15692:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74013,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74021,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74017,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74006,"src":"15753:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74015,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15713:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:127","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77267,"src":"15713:39:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74019,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74008,"src":"15764:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:127"},{"assignments":[74023],"declarations":[{"constant":false,"id":74023,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:127","nodeType":"VariableDeclaration","scope":74087,"src":"15789:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74022,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74025,"initialValue":{"hexValue":"3138","id":74024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:127","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:127"},{"clauses":[{"block":{"id":74046,"nodeType":"Block","src":"15907:52:127","statements":[{"expression":{"id":74044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74039,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74023,"src":"15921:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74042,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74037,"src":"15939:8:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":74041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74040,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:127","typeDescriptions":{}}},"id":74043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74045,"nodeType":"ExpressionStatement","src":"15921:27:127"}]},"errorName":"","id":74047,"nodeType":"TryCatchClause","parameters":{"id":74038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74037,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:127","nodeType":"VariableDeclaration","scope":74047,"src":"15891:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74036,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:127"},"src":"15882:77:127"},{"block":{"id":74054,"nodeType":"Block","src":"15966:61:127","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":74051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":74048,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15980:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22297,"src":"15980:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":74052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74053,"nodeType":"ExpressionStatement","src":"15980:36:127"}]},"errorName":"","id":74055,"nodeType":"TryCatchClause","src":"15960:67:127"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74029,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15837:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:127","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"15837:29:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$57117_$","typeString":"function () view external returns (contract IERC20)"}},"id":74031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":74028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74027,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:127","typeDescriptions":{}}},"id":74032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74026,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"15823:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$57039_$","typeString":"type(contract ERC20)"}},"id":74033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$57039","typeString":"contract ERC20"}},"id":74034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:127","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56527,"src":"15823:56:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":74035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:127","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":74056,"nodeType":"TryStatement","src":"15819:208:127"},{"assignments":[74058],"declarations":[{"constant":false,"id":74058,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:127","nodeType":"VariableDeclaration","scope":74087,"src":"16036:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74057,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74067,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74061,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74014,"src":"16071:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":74062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":74063,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74023,"src":"16090:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74059,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"16061:4:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59394_$","typeString":"type(library Math)"}},"id":74060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:127","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58898,"src":"16061:9:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":74066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:127"},{"assignments":[74069],"declarations":[{"constant":false,"id":74069,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:127","nodeType":"VariableDeclaration","scope":74087,"src":"16108:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74068,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74078,"initialValue":{"arguments":[{"id":74072,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74006,"src":"16175:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74075,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74073,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:127","typeDescriptions":{}}},"id":74076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74070,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16132:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"16132:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:127"},{"assignments":[74080],"declarations":[{"constant":false,"id":74080,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:127","nodeType":"VariableDeclaration","scope":74087,"src":"16209:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74079,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74084,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74081,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74058,"src":"16236:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74082,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"16253:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:127"},{"expression":{"id":74085,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74080,"src":"16284:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74012,"id":74086,"nodeType":"Return","src":"16277:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:127","parameters":{"id":74009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74006,"mutability":"mutable","name":"_member","nameLocation":"15617:7:127","nodeType":"VariableDeclaration","scope":74088,"src":"15609:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74005,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74008,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:127","nodeType":"VariableDeclaration","scope":74088,"src":"15626:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74007,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:127"},"returnParameters":{"id":74012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74088,"src":"15673:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74010,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74098,"nodeType":"FunctionDefinition","src":"16313:136:127","nodes":[],"body":{"id":74097,"nodeType":"Block","src":"16409:40:127","nodes":[],"statements":[{"expression":{"id":74095,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"16426:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74094,"id":74096,"nodeType":"Return","src":"16419:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:127","parameters":{"id":74091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74090,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:127","nodeType":"VariableDeclaration","scope":74098,"src":"16351:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74089,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:127"},"returnParameters":{"id":74094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74098,"src":"16400:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74092,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74192,"nodeType":"FunctionDefinition","src":"16455:802:127","nodes":[],"body":{"id":74191,"nodeType":"Block","src":"16562:695:127","nodes":[],"statements":[{"assignments":[74108],"declarations":[{"constant":false,"id":74108,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:127","nodeType":"VariableDeclaration","scope":74191,"src":"16572:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74107,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74110,"initialValue":{"hexValue":"3138","id":74109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:127","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:127"},{"clauses":[{"block":{"id":74131,"nodeType":"Block","src":"16690:52:127","statements":[{"expression":{"id":74129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74124,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74108,"src":"16704:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74127,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74122,"src":"16722:8:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":74126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74125,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:127","typeDescriptions":{}}},"id":74128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74130,"nodeType":"ExpressionStatement","src":"16704:27:127"}]},"errorName":"","id":74132,"nodeType":"TryCatchClause","parameters":{"id":74123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74122,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:127","nodeType":"VariableDeclaration","scope":74132,"src":"16674:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74121,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:127"},"src":"16665:77:127"},{"block":{"id":74139,"nodeType":"Block","src":"16749:61:127","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":74136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":74133,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16763:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22297,"src":"16763:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":74137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74138,"nodeType":"ExpressionStatement","src":"16763:36:127"}]},"errorName":"","id":74140,"nodeType":"TryCatchClause","src":"16743:67:127"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74114,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16620:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:127","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"16620:29:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$57117_$","typeString":"function () view external returns (contract IERC20)"}},"id":74116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":74113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74112,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:127","typeDescriptions":{}}},"id":74117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74111,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"16606:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$57039_$","typeString":"type(contract ERC20)"}},"id":74118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$57039","typeString":"contract ERC20"}},"id":74119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:127","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56527,"src":"16606:56:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":74120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:127","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":74141,"nodeType":"TryStatement","src":"16602:208:127"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":74145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":74146,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74102,"src":"16851:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74142,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16819:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"16819:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":74147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74148,"nodeType":"ExpressionStatement","src":"16819:49:127"},{"assignments":[74150],"declarations":[{"constant":false,"id":74150,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:127","nodeType":"VariableDeclaration","scope":74191,"src":"16878:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74149,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74157,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74153,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74100,"src":"16942:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74151,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16902:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:127","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77267,"src":"16902:39:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74155,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74102,"src":"16953:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:127"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":74161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":74162,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"17008:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74158,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16979:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"16979:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":74163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74164,"nodeType":"ExpressionStatement","src":"16979:43:127"},{"assignments":[74166],"declarations":[{"constant":false,"id":74166,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:127","nodeType":"VariableDeclaration","scope":74191,"src":"17032:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74165,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74175,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74169,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"17067:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":74170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":74171,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74108,"src":"17089:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74167,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"17057:4:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59394_$","typeString":"type(library Math)"}},"id":74168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:127","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58898,"src":"17057:9:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":74174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:127"},{"assignments":[74177],"declarations":[{"constant":false,"id":74177,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:127","nodeType":"VariableDeclaration","scope":74191,"src":"17107:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74176,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74188,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74180,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74100,"src":"17177:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74183,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74181,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:127","typeDescriptions":{}}},"id":74184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74178,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"17134:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"17134:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74186,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74166,"src":"17203:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:127"},{"expression":{"id":74189,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"17234:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74106,"id":74190,"nodeType":"Return","src":"17227:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:127","parameters":{"id":74103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74100,"mutability":"mutable","name":"_member","nameLocation":"16495:7:127","nodeType":"VariableDeclaration","scope":74192,"src":"16487:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74099,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74102,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:127","nodeType":"VariableDeclaration","scope":74192,"src":"16504:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74101,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:127"},"returnParameters":{"id":74106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74192,"src":"16553:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74104,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74201,"nodeType":"FunctionDefinition","src":"17263:99:127","nodes":[],"body":{"id":74200,"nodeType":"Block","src":"17317:45:127","nodes":[],"statements":[{"expression":{"expression":{"id":74197,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"17334:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":74198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"17334:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74196,"id":74199,"nodeType":"Return","src":"17327:28:127"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:127","parameters":{"id":74193,"nodeType":"ParameterList","parameters":[],"src":"17284:2:127"},"returnParameters":{"id":74196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74201,"src":"17308:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74194,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74210,"nodeType":"FunctionDefinition","src":"17368:110:127","nodes":[],"body":{"id":74209,"nodeType":"Block","src":"17443:35:127","nodes":[],"statements":[{"expression":{"id":74207,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"17460:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":74206,"id":74208,"nodeType":"Return","src":"17453:18:127"}]},"baseFunctions":[73021],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:127","parameters":{"id":74202,"nodeType":"ParameterList","parameters":[],"src":"17391:2:127"},"returnParameters":{"id":74206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74210,"src":"17415:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":74204,"nodeType":"UserDefinedTypeName","pathNode":{"id":74203,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:127","17430:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"17415:26:127"},"referencedDeclaration":73031,"src":"17415:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74221,"nodeType":"FunctionDefinition","src":"17594:226:127","nodes":[],"body":{"id":74220,"nodeType":"Block","src":"17672:148:127","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74217,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73132,"src":"17737:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74219,"nodeType":"RevertStatement","src":"17730:23:127"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:127","parameters":{"id":74215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74221,"src":"17619:39:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74212,"nodeType":"UserDefinedTypeName","pathNode":{"id":74211,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:127","17634:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"17619:30:127"},"referencedDeclaration":73081,"src":"17619:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74213,"nodeType":"ArrayTypeName","src":"17619:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:127"},"returnParameters":{"id":74216,"nodeType":"ParameterList","parameters":[],"src":"17672:0:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74277,"nodeType":"FunctionDefinition","src":"17966:551:127","nodes":[],"body":{"id":74276,"nodeType":"Block","src":"18040:477:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74230,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18070:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74229,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73497,"src":"18050:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74232,"nodeType":"ExpressionStatement","src":"18050:28:127"},{"assignments":[74234],"declarations":[{"constant":false,"id":74234,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:127","nodeType":"VariableDeclaration","scope":74276,"src":"18134:28:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74233,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74243,"initialValue":{"arguments":[{"id":74237,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18211:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74240,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74238,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:127","typeDescriptions":{}}},"id":74241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74235,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"18165:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:127","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76406,"src":"18165:45:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:127"},{"condition":{"id":74245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:127","subExpression":{"id":74244,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74234,"src":"18249:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74250,"nodeType":"IfStatement","src":"18244:78:127","trueBody":{"id":74249,"nodeType":"Block","src":"18274:48:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74246,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"18295:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74248,"nodeType":"RevertStatement","src":"18288:23:127"}]}},{"assignments":[74256],"declarations":[{"constant":false,"id":74256,"mutability":"mutable","name":"pv","nameLocation":"18371:2:127","nodeType":"VariableDeclaration","scope":74276,"src":"18331:42:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74254,"nodeType":"UserDefinedTypeName","pathNode":{"id":74253,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:127","18346:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"18331:30:127"},"referencedDeclaration":73081,"src":"18331:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74255,"nodeType":"ArrayTypeName","src":"18331:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74265,"initialValue":{"arguments":[{"id":74259,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"18387:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74260,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"18395:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:127","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":73081,"src":"18395:30:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$73081_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:127","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:127","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:127","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:127"},{"expression":{"arguments":[{"id":74267,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18464:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74268,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"18473:2:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74266,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74967,"src":"18439:24:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74270,"nodeType":"ExpressionStatement","src":"18439:37:127"},{"expression":{"arguments":[{"id":74272,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18498:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74273,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"18507:2:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74271,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75254,"src":"18486:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74275,"nodeType":"ExpressionStatement","src":"18486:24:127"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:127","overrides":{"id":74227,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:127"},"parameters":{"id":74226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74223,"mutability":"mutable","name":"_data","nameLocation":"17998:5:127","nodeType":"VariableDeclaration","scope":74277,"src":"17985:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74222,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74225,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:127","nodeType":"VariableDeclaration","scope":74277,"src":"18005:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74224,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:127"},"returnParameters":{"id":74228,"nodeType":"ParameterList","parameters":[],"src":"18040:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74433,"nodeType":"FunctionDefinition","src":"18773:1756:127","nodes":[],"body":{"id":74432,"nodeType":"Block","src":"18859:1670:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74288,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"18952:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:127","memberName":"length","nodeType":"MemberAccess","src":"18952:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74296,"nodeType":"IfStatement","src":"18948:76:127","trueBody":{"id":74295,"nodeType":"Block","src":"18971:53:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74292,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73164,"src":"18992:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74294,"nodeType":"RevertStatement","src":"18985:28:127"}]}},{"assignments":[74298],"declarations":[{"constant":false,"id":74298,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:127","nodeType":"VariableDeclaration","scope":74432,"src":"19034:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74297,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74306,"initialValue":{"arguments":[{"id":74301,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"19066:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74302,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:127","typeDescriptions":{}}}],"id":74304,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:127","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74307,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19098:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74314,"nodeType":"IfStatement","src":"19094:77:127","trueBody":{"id":74313,"nodeType":"Block","src":"19115:56:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74310,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73166,"src":"19136:22:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74312,"nodeType":"RevertStatement","src":"19129:31:127"}]}},{"assignments":[74319],"declarations":[{"constant":false,"id":74319,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:127","nodeType":"VariableDeclaration","scope":74432,"src":"19180:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74318,"nodeType":"UserDefinedTypeName","pathNode":{"id":74317,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:127","19195:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"19180:23:127"},"referencedDeclaration":73076,"src":"19180:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74323,"initialValue":{"baseExpression":{"id":74320,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"19223:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74322,"indexExpression":{"id":74321,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19233:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":74328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74324,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"19259:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74325,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"19275:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:127","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":73026,"src":"19275:27:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$73026_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:127","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":73024,"src":"19275:35:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74431,"nodeType":"IfStatement","src":"19255:1208:127","trueBody":{"id":74430,"nodeType":"Block","src":"19312:1151:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74329,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19330:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"19330:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74331,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19353:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74338,"nodeType":"IfStatement","src":"19326:108:127","trueBody":{"id":74337,"nodeType":"Block","src":"19365:69:127","statements":[{"errorCall":{"arguments":[{"id":74334,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19408:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74333,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"19390:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74336,"nodeType":"RevertStatement","src":"19383:36:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74339,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19452:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19452:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74341,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74351,"nodeType":"IfStatement","src":"19448:152:127","trueBody":{"id":74350,"nodeType":"Block","src":"19491:109:127","statements":[{"errorCall":{"arguments":[{"id":74344,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19536:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74345,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19548:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19548:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74347,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74343,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73192,"src":"19516:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74349,"nodeType":"RevertStatement","src":"19509:76:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"id":74357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74352,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19618:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"19618:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74354,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"19645:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"19645:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"19645:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74363,"nodeType":"IfStatement","src":"19614:138:127","trueBody":{"id":74362,"nodeType":"Block","src":"19683:69:127","statements":[{"errorCall":{"arguments":[{"id":74359,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19726:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74358,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73170,"src":"19708:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74361,"nodeType":"RevertStatement","src":"19701:36:127"}]}},{"assignments":[74365],"declarations":[{"constant":false,"id":74365,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:127","nodeType":"VariableDeclaration","scope":74430,"src":"19766:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74364,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74369,"initialValue":{"arguments":[{"id":74367,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19816:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74366,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75677,"src":"19791:24:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:127"},{"assignments":[74371],"declarations":[{"constant":false,"id":74371,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:127","nodeType":"VariableDeclaration","scope":74430,"src":"19841:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74370,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74376,"initialValue":{"arguments":[{"expression":{"id":74373,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19880:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19880:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74372,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"19861:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74377,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74365,"src":"19924:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74378,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74371,"src":"19941:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74380,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19954:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19954:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74389,"nodeType":"IfStatement","src":"19920:137:127","trueBody":{"id":74388,"nodeType":"Block","src":"19984:73:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74385,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73182,"src":"20009:31:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74387,"nodeType":"RevertStatement","src":"20002:40:127"}]}},{"assignments":[74394],"declarations":[{"constant":false,"id":74394,"mutability":"mutable","name":"pool","nameLocation":"20089:4:127","nodeType":"VariableDeclaration","scope":74430,"src":"20071:22:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74393,"nodeType":"UserDefinedTypeName","pathNode":{"id":74392,"name":"IAllo.Pool","nameLocations":["20071:5:127","20077:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:127"},"referencedDeclaration":2319,"src":"20071:10:127","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74399,"initialValue":{"arguments":[{"id":74397,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74395,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:127","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:127"},{"expression":{"id":74403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74400,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20145:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20145:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74404,"nodeType":"ExpressionStatement","src":"20131:38:127"},{"expression":{"arguments":[{"expression":{"id":74406,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74394,"src":"20207:4:127","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:127","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74408,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20219:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"20219:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74410,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20241:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20241:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74405,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74413,"nodeType":"ExpressionStatement","src":"20191:75:127"},{"expression":{"id":74420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74414,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20297:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"20297:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74417,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"20323:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"20323:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:127","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":73048,"src":"20323:38:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74421,"nodeType":"ExpressionStatement","src":"20297:64:127"},{"eventCall":{"arguments":[{"id":74423,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"20393:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20405:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"20405:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74426,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20427:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20427:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74422,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[73207,2858],"referencedDeclaration":73207,"src":"20381:11:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74429,"nodeType":"EmitStatement","src":"20376:76:127"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:127","overrides":{"id":74286,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:127"},"parameters":{"id":74285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74433,"src":"18794:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74278,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74279,"nodeType":"ArrayTypeName","src":"18794:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74282,"mutability":"mutable","name":"_data","nameLocation":"18825:5:127","nodeType":"VariableDeclaration","scope":74433,"src":"18812:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74281,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74433,"src":"18832:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74283,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:127"},"returnParameters":{"id":74287,"nodeType":"ParameterList","parameters":[],"src":"18859:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74487,"nodeType":"FunctionDefinition","src":"20535:735:127","nodes":[],"body":{"id":74486,"nodeType":"Block","src":"20624:646:127","nodes":[],"statements":[{"assignments":[74444],"declarations":[{"constant":false,"id":74444,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:127","nodeType":"VariableDeclaration","scope":74486,"src":"20634:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74443,"nodeType":"UserDefinedTypeName","pathNode":{"id":74442,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:127","20649:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"20634:23:127"},"referencedDeclaration":73076,"src":"20634:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74448,"initialValue":{"baseExpression":{"id":74445,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"20677:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74447,"indexExpression":{"id":74446,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74435,"src":"20687:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:127"},{"assignments":[74450,74452],"declarations":[{"constant":false,"id":74450,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:127","nodeType":"VariableDeclaration","scope":74486,"src":"20784:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74449,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74452,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:127","nodeType":"VariableDeclaration","scope":74486,"src":"20808:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74451,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74458,"initialValue":{"arguments":[{"id":74454,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20877:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74455,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20887:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"20887:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74453,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"20843:33:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74459,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"20924:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74462,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74452,"src":"20947:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74472,"nodeType":"IfStatement","src":"20920:110:127","trueBody":{"id":74471,"nodeType":"Block","src":"20965:65:127","statements":[{"expression":{"id":74469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74466,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"20979:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74467,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20996:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"20996:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74470,"nodeType":"ExpressionStatement","src":"20979:40:127"}]}},{"assignments":[74474],"declarations":[{"constant":false,"id":74474,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:127","nodeType":"VariableDeclaration","scope":74486,"src":"21039:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74473,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74479,"initialValue":{"arguments":[{"expression":{"id":74476,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"21078:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"21078:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74475,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"21059:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:127"},{"expression":{"id":74484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74480,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"21220:13:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74481,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"21236:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74482,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74474,"src":"21254:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74485,"nodeType":"ExpressionStatement","src":"21220:43:127"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:127","parameters":{"id":74436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74435,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:127","nodeType":"VariableDeclaration","scope":74487,"src":"20563:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74434,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:127"},"returnParameters":{"id":74439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74438,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:127","nodeType":"VariableDeclaration","scope":74487,"src":"20604:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74437,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74509,"nodeType":"FunctionDefinition","src":"21560:220:127","nodes":[],"body":{"id":74508,"nodeType":"Block","src":"21651:129:127","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74496,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74489,"src":"21711:12:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:127","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":74498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74497,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:127","typeDescriptions":{}}},"id":74500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74504,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:127","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:127","trueExpression":{"expression":{"id":74502,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:127","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74495,"id":74507,"nodeType":"Return","src":"21704:69:127"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:127","overrides":{"id":74491,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:127"},"parameters":{"id":74490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74489,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:127","nodeType":"VariableDeclaration","scope":74509,"src":"21589:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74488,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:127"},"returnParameters":{"id":74495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74509,"src":"21643:6:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74493,"nodeType":"UserDefinedTypeName","pathNode":{"id":74492,"name":"Status","nameLocations":["21643:6:127"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:127"},"referencedDeclaration":2815,"src":"21643:6:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74528,"nodeType":"FunctionDefinition","src":"21909:288:127","nodes":[],"body":{"id":74527,"nodeType":"Block","src":"22019:178:127","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74524,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73132,"src":"22079:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74526,"nodeType":"RevertStatement","src":"22072:23:127"}]},"baseFunctions":[3687],"documentation":{"id":74510,"nodeType":"StructuredDocumentation","src":"21786:118:127","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:127","overrides":{"id":74518,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:127"},"parameters":{"id":74517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21929:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74511,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74512,"nodeType":"ArrayTypeName","src":"21929:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21947:14:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74514,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74515,"nodeType":"ArrayTypeName","src":"21947:7:127","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:127"},"returnParameters":{"id":74523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21995:22:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74520,"nodeType":"UserDefinedTypeName","pathNode":{"id":74519,"name":"PayoutSummary","nameLocations":["21995:13:127"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:127"},"referencedDeclaration":2820,"src":"21995:13:127","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74521,"nodeType":"ArrayTypeName","src":"21995:15:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74547,"nodeType":"FunctionDefinition","src":"22203:264:127","nodes":[],"body":{"id":74546,"nodeType":"Block","src":"22355:112:127","nodes":[],"statements":[{"expression":{"id":74539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74532,"src":"22408:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74540,"nodeType":"ExpressionStatement","src":"22408:5:127"},{"expression":{"arguments":[{"id":74542,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"22444:12:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74541,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74538,"id":74545,"nodeType":"Return","src":"22423:37:127"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:127","overrides":{"id":74534,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:127"},"parameters":{"id":74533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74530,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:127","nodeType":"VariableDeclaration","scope":74547,"src":"22223:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74529,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74532,"mutability":"mutable","name":"_data","nameLocation":"22258:5:127","nodeType":"VariableDeclaration","scope":74547,"src":"22245:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74531,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:127"},"returnParameters":{"id":74538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74547,"src":"22329:20:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74536,"nodeType":"UserDefinedTypeName","pathNode":{"id":74535,"name":"PayoutSummary","nameLocations":["22329:13:127"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:127"},"referencedDeclaration":2820,"src":"22329:13:127","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74558,"nodeType":"FunctionDefinition","src":"22473:127:127","nodes":[],"body":{"id":74557,"nodeType":"Block","src":"22550:50:127","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74554,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"22585:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74553,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"22565:19:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74556,"nodeType":"EmitStatement","src":"22560:33:127"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:127","overrides":{"id":74551,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:127"},"parameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:127","nodeType":"VariableDeclaration","scope":74558,"src":"22507:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74548,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:127"},"returnParameters":{"id":74552,"nodeType":"ParameterList","parameters":[],"src":"22550:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74577,"nodeType":"FunctionDefinition","src":"22695:191:127","nodes":[],"body":{"id":74576,"nodeType":"Block","src":"22780:106:127","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74566,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74560,"src":"22840:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:127","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":74568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74567,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:127","typeDescriptions":{}}},"id":74570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:127","trueExpression":{"hexValue":"66616c7365","id":74572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74565,"id":74575,"nodeType":"Return","src":"22833:46:127"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:127","overrides":{"id":74562,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:127"},"parameters":{"id":74561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74560,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:127","nodeType":"VariableDeclaration","scope":74577,"src":"22722:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74559,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:127"},"returnParameters":{"id":74565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74577,"src":"22774:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74563,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74587,"nodeType":"FunctionDefinition","src":"22892:86:127","nodes":[],"body":{"id":74586,"nodeType":"Block","src":"22938:40:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74583,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74579,"src":"22963:7:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74582,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74585,"nodeType":"ExpressionStatement","src":"22948:23:127"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:127","parameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"_active","nameLocation":"22920:7:127","nodeType":"VariableDeclaration","scope":74587,"src":"22915:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74578,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:127"},"returnParameters":{"id":74581,"nodeType":"ParameterList","parameters":[],"src":"22938:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74665,"nodeType":"FunctionDefinition","src":"22984:729:127","nodes":[],"body":{"id":74664,"nodeType":"Block","src":"23028:685:127","nodes":[],"statements":[{"assignments":[74596],"declarations":[{"constant":false,"id":74596,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:127","nodeType":"VariableDeclaration","scope":74664,"src":"23086:29:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74594,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74595,"nodeType":"ArrayTypeName","src":"23086:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74600,"initialValue":{"baseExpression":{"id":74597,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"23118:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74599,"indexExpression":{"id":74598,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23139:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:127"},{"body":{"id":74662,"nodeType":"Block","src":"23207:500:127","statements":[{"assignments":[74613],"declarations":[{"constant":false,"id":74613,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:127","nodeType":"VariableDeclaration","scope":74662,"src":"23221:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74612,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74617,"initialValue":{"baseExpression":{"id":74614,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"23242:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74616,"indexExpression":{"id":74615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23255:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:127"},{"assignments":[74622],"declarations":[{"constant":false,"id":74622,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:127","nodeType":"VariableDeclaration","scope":74662,"src":"23271:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74621,"nodeType":"UserDefinedTypeName","pathNode":{"id":74620,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:127","23286:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"23271:23:127"},"referencedDeclaration":73076,"src":"23271:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74626,"initialValue":{"baseExpression":{"id":74623,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"23314:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74625,"indexExpression":{"id":74624,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"23324:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:127"},{"condition":{"arguments":[{"id":74628,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"23368:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74627,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74853,"src":"23353:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74661,"nodeType":"IfStatement","src":"23349:348:127","trueBody":{"id":74660,"nodeType":"Block","src":"23381:316:127","statements":[{"assignments":[74631],"declarations":[{"constant":false,"id":74631,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:127","nodeType":"VariableDeclaration","scope":74660,"src":"23399:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74630,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74636,"initialValue":{"baseExpression":{"expression":{"id":74632,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23422:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"23422:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74635,"indexExpression":{"id":74634,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23449:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:127"},{"expression":{"id":74643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74637,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23475:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"23475:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74641,"indexExpression":{"id":74639,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23502:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74644,"nodeType":"ExpressionStatement","src":"23475:39:127"},{"expression":{"id":74649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23532:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"23532:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74648,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23557:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74650,"nodeType":"ExpressionStatement","src":"23532:37:127"},{"expression":{"id":74653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74651,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"23587:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74652,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23602:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74654,"nodeType":"ExpressionStatement","src":"23587:27:127"},{"expression":{"arguments":[{"id":74656,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23659:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74657,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23669:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74655,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"23632:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74659,"nodeType":"ExpressionStatement","src":"23632:50:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23177:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74606,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"23181:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:127","memberName":"length","nodeType":"MemberAccess","src":"23181:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74663,"initializationExpression":{"assignments":[74602],"declarations":[{"constant":false,"id":74602,"mutability":"mutable","name":"i","nameLocation":"23170:1:127","nodeType":"VariableDeclaration","scope":74663,"src":"23162:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74601,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74604,"initialValue":{"hexValue":"30","id":74603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:127"},"loopExpression":{"expression":{"id":74610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:127","subExpression":{"id":74609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23202:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74611,"nodeType":"ExpressionStatement","src":"23202:3:127"},"nodeType":"ForStatement","src":"23157:550:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:127","parameters":{"id":74590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74589,"mutability":"mutable","name":"_member","nameLocation":"23010:7:127","nodeType":"VariableDeclaration","scope":74665,"src":"23002:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74588,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:127"},"returnParameters":{"id":74591,"nodeType":"ParameterList","parameters":[],"src":"23028:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74739,"nodeType":"FunctionDefinition","src":"24275:1038:127","nodes":[],"body":{"id":74738,"nodeType":"Block","src":"24744:569:127","nodes":[],"statements":[{"assignments":[74696],"declarations":[{"constant":false,"id":74696,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:127","nodeType":"VariableDeclaration","scope":74738,"src":"24754:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74695,"nodeType":"UserDefinedTypeName","pathNode":{"id":74694,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:127","24769:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"24754:23:127"},"referencedDeclaration":73076,"src":"24754:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74700,"initialValue":{"baseExpression":{"id":74697,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"24797:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74699,"indexExpression":{"id":74698,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74668,"src":"24807:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:127"},{"expression":{"id":74712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74701,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74688,"src":"24830:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74702,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24842:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"24842:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74708,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24897:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"24897:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74707,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"24878:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:127","trueExpression":{"hexValue":"30","id":74706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74713,"nodeType":"ExpressionStatement","src":"24830:92:127"},{"expression":{"components":[{"expression":{"id":74714,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24953:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"24953:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74716,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24985:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"24985:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74718,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25019:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73063,"src":"25019:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74720,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25056:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"25056:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74722,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25094:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"25094:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74724,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25129:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"25129:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74726,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25166:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"25166:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74728,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25198:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"25198:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74730,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74688,"src":"25235:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74731,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25258:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"25258:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74735,"indexExpression":{"expression":{"id":74733,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:127","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:127","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$73049_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74691,"id":74737,"nodeType":"Return","src":"24932:374:127"}]},"documentation":{"id":74666,"nodeType":"StructuredDocumentation","src":"23719:551:127","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:127","parameters":{"id":74669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74668,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:127","nodeType":"VariableDeclaration","scope":74739,"src":"24296:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74667,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:127"},"returnParameters":{"id":74691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74671,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24377:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74670,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74673,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:127","nodeType":"VariableDeclaration","scope":74739,"src":"24408:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74672,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74675,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24441:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74674,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74677,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:127","nodeType":"VariableDeclaration","scope":74739,"src":"24477:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74676,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74679,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:127","nodeType":"VariableDeclaration","scope":74739,"src":"24514:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74678,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74682,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24548:44:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74681,"nodeType":"UserDefinedTypeName","pathNode":{"id":74680,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:127","24563:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73049,"src":"24548:29:127"},"referencedDeclaration":73049,"src":"24548:29:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74684,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24606:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74683,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74686,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24637:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74685,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74688,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24673:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74687,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74690,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:127","nodeType":"VariableDeclaration","scope":74739,"src":"24704:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74689,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74760,"nodeType":"FunctionDefinition","src":"25319:198:127","nodes":[],"body":{"id":74759,"nodeType":"Block","src":"25401:116:127","nodes":[],"statements":[{"assignments":[74751],"declarations":[{"constant":false,"id":74751,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:127","nodeType":"VariableDeclaration","scope":74759,"src":"25411:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74750,"nodeType":"UserDefinedTypeName","pathNode":{"id":74749,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:127","25426:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"25411:23:127"},"referencedDeclaration":73076,"src":"25411:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74755,"initialValue":{"baseExpression":{"id":74752,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"25454:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74754,"indexExpression":{"id":74753,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74741,"src":"25464:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:127"},{"expression":{"expression":{"id":74756,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"25493:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73075,"src":"25493:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74746,"id":74758,"nodeType":"Return","src":"25486:24:127"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:127","parameters":{"id":74742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74741,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:127","nodeType":"VariableDeclaration","scope":74760,"src":"25340:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74740,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:127"},"returnParameters":{"id":74746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74760,"src":"25384:15:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74744,"nodeType":"UserDefinedTypeName","pathNode":{"id":74743,"name":"Metadata","nameLocations":["25384:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:127"},"referencedDeclaration":3098,"src":"25384:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74776,"nodeType":"FunctionDefinition","src":"25718:176:127","nodes":[],"body":{"id":74775,"nodeType":"Block","src":"25818:76:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74771,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"25867:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74772,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"25880:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74770,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74818,"src":"25835:31:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74769,"id":74774,"nodeType":"Return","src":"25828:59:127"}]},"documentation":{"id":74761,"nodeType":"StructuredDocumentation","src":"25523:190:127","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:127","parameters":{"id":74766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74763,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:127","nodeType":"VariableDeclaration","scope":74776,"src":"25749:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74762,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74765,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:127","nodeType":"VariableDeclaration","scope":74776,"src":"25770:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74764,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:127"},"returnParameters":{"id":74769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74776,"src":"25809:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74767,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74789,"nodeType":"FunctionDefinition","src":"25900:145:127","nodes":[],"body":{"id":74788,"nodeType":"Block","src":"25986:59:127","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74783,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26003:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74785,"indexExpression":{"id":74784,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74778,"src":"26013:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"26003:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74782,"id":74787,"nodeType":"Return","src":"25996:42:127"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:127","parameters":{"id":74779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74778,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:127","nodeType":"VariableDeclaration","scope":74789,"src":"25933:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74777,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:127"},"returnParameters":{"id":74782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74789,"src":"25977:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74780,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74801,"nodeType":"FunctionDefinition","src":"26114:127:127","nodes":[],"body":{"id":74800,"nodeType":"Block","src":"26191:50:127","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74796,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73325,"src":"26208:18:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74798,"indexExpression":{"id":74797,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"26227:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74795,"id":74799,"nodeType":"Return","src":"26201:33:127"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:127","parameters":{"id":74792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74791,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:127","nodeType":"VariableDeclaration","scope":74801,"src":"26145:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74790,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:127"},"returnParameters":{"id":74795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74801,"src":"26182:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74793,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74818,"nodeType":"FunctionDefinition","src":"26247:182:127","nodes":[],"body":{"id":74817,"nodeType":"Block","src":"26357:72:127","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74810,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26374:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74812,"indexExpression":{"id":74811,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"26384:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"26374:40:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74815,"indexExpression":{"id":74814,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74805,"src":"26415:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74809,"id":74816,"nodeType":"Return","src":"26367:55:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:127","parameters":{"id":74806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74803,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:127","nodeType":"VariableDeclaration","scope":74818,"src":"26288:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74802,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74805,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:127","nodeType":"VariableDeclaration","scope":74818,"src":"26309:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74804,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:127"},"returnParameters":{"id":74809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74818,"src":"26348:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74807,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74828,"nodeType":"FunctionDefinition","src":"26435:145:127","nodes":[],"body":{"id":74827,"nodeType":"Block","src":"26499:81:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74823,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"26516:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:127","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77710,"src":"26516:38:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74822,"id":74826,"nodeType":"Return","src":"26509:47:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:127","parameters":{"id":74819,"nodeType":"ParameterList","parameters":[],"src":"26464:2:127"},"returnParameters":{"id":74822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74828,"src":"26490:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74820,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74853,"nodeType":"FunctionDefinition","src":"26586:185:127","nodes":[],"body":{"id":74852,"nodeType":"Block","src":"26660:111:127","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74835,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26677:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74837,"indexExpression":{"id":74836,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74830,"src":"26687:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"26677:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74841,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26718:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74843,"indexExpression":{"id":74842,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74830,"src":"26728:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"26718:32:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:127","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":74846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74845,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:127","typeDescriptions":{}}},"id":74848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74834,"id":74851,"nodeType":"Return","src":"26670:94:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:127","parameters":{"id":74831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74830,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:127","nodeType":"VariableDeclaration","scope":74853,"src":"26610:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74829,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:127"},"returnParameters":{"id":74834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74853,"src":"26654:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74832,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74871,"nodeType":"FunctionDefinition","src":"26777:174:127","nodes":[],"body":{"id":74870,"nodeType":"Block","src":"26872:79:127","nodes":[],"statements":[{"expression":{"id":74868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74860,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74858,"src":"26882:14:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74861,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"26899:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74862,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74864,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"26924:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74865,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"26943:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74869,"nodeType":"ExpressionStatement","src":"26882:62:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:127","parameters":{"id":74856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74855,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:127","nodeType":"VariableDeclaration","scope":74871,"src":"26802:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74854,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:127"},"returnParameters":{"id":74859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74858,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:127","nodeType":"VariableDeclaration","scope":74871,"src":"26851:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74857,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74967,"nodeType":"FunctionDefinition","src":"26957:1548:127","nodes":[],"body":{"id":74966,"nodeType":"Block","src":"27087:1418:127","nodes":[],"statements":[{"assignments":[74881],"declarations":[{"constant":false,"id":74881,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:127","nodeType":"VariableDeclaration","scope":74966,"src":"27097:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74880,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74883,"initialValue":{"hexValue":"30","id":74882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:127"},{"body":{"id":74928,"nodeType":"Block","src":"27187:576:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74895,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27260:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74897,"indexExpression":{"id":74896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27277:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"27260:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74903,"nodeType":"IfStatement","src":"27256:187:127","trueBody":{"id":74902,"nodeType":"Block","src":"27297:146:127","statements":[{"id":74901,"nodeType":"Continue","src":"27420:8:127"}]}},{"assignments":[74905],"declarations":[{"constant":false,"id":74905,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:127","nodeType":"VariableDeclaration","scope":74928,"src":"27456:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74904,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74910,"initialValue":{"expression":{"baseExpression":{"id":74906,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27477:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74908,"indexExpression":{"id":74907,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27494:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"27477:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:127"},{"condition":{"id":74914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:127","subExpression":{"arguments":[{"id":74912,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"27541:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74911,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74853,"src":"27526:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74920,"nodeType":"IfStatement","src":"27521:167:127","trueBody":{"id":74919,"nodeType":"Block","src":"27554:134:127","statements":[{"errorCall":{"arguments":[{"id":74916,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"27597:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74915,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"27579:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74918,"nodeType":"RevertStatement","src":"27572:36:127"}]}},{"expression":{"id":74926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74921,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"27701:15:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74922,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27720:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74924,"indexExpression":{"id":74923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27737:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:127","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":73080,"src":"27720:32:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74927,"nodeType":"ExpressionStatement","src":"27701:51:127"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27153:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74889,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27157:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:127","memberName":"length","nodeType":"MemberAccess","src":"27157:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74929,"initializationExpression":{"assignments":[74885],"declarations":[{"constant":false,"id":74885,"mutability":"mutable","name":"i","nameLocation":"27146:1:127","nodeType":"VariableDeclaration","scope":74929,"src":"27138:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74884,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74887,"initialValue":{"hexValue":"30","id":74886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:127"},"loopExpression":{"expression":{"id":74893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:127","subExpression":{"id":74892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27182:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74894,"nodeType":"ExpressionStatement","src":"27182:3:127"},"nodeType":"ForStatement","src":"27133:630:127"},{"assignments":[74931],"declarations":[{"constant":false,"id":74931,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:127","nodeType":"VariableDeclaration","scope":74966,"src":"27859:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74930,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74938,"initialValue":{"arguments":[{"arguments":[{"id":74934,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"27925:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74933,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74801,"src":"27903:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74936,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"27935:15:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74932,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"27891:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:127"},{"assignments":[74940],"declarations":[{"constant":false,"id":74940,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:127","nodeType":"VariableDeclaration","scope":74966,"src":"28033:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74939,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74949,"initialValue":{"arguments":[{"id":74943,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"28105:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74946,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74944,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:127","typeDescriptions":{}}},"id":74947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74941,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"28062:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"28062:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74950,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28294:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74951,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"28318:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74959,"nodeType":"IfStatement","src":"28290:147:127","trueBody":{"id":74958,"nodeType":"Block","src":"28338:99:127","statements":[{"errorCall":{"arguments":[{"id":74954,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28384:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74955,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"28407:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74953,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73162,"src":"28359:24:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74957,"nodeType":"RevertStatement","src":"28352:74:127"}]}},{"expression":{"id":74964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74960,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73325,"src":"28447:18:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74962,"indexExpression":{"id":74961,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"28466:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74963,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28477:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74965,"nodeType":"ExpressionStatement","src":"28447:51:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:127","parameters":{"id":74878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74873,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:127","nodeType":"VariableDeclaration","scope":74967,"src":"26991:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74872,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74877,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:127","nodeType":"VariableDeclaration","scope":74967,"src":"27008:56:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74875,"nodeType":"UserDefinedTypeName","pathNode":{"id":74874,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:127","27023:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"27008:30:127"},"referencedDeclaration":73081,"src":"27008:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74876,"nodeType":"ArrayTypeName","src":"27008:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:127"},"returnParameters":{"id":74879,"nodeType":"ParameterList","parameters":[],"src":"27087:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75254,"nodeType":"FunctionDefinition","src":"28511:3479:127","nodes":[],"body":{"id":75253,"nodeType":"Block","src":"28616:3374:127","nodes":[],"statements":[{"assignments":[74980],"declarations":[{"constant":false,"id":74980,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:127","nodeType":"VariableDeclaration","scope":75253,"src":"28626:29:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74978,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74979,"nodeType":"ArrayTypeName","src":"28626:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74981,"nodeType":"VariableDeclarationStatement","src":"28626:29:127"},{"body":{"id":75251,"nodeType":"Block","src":"28719:3265:127","statements":[{"assignments":[74994],"declarations":[{"constant":false,"id":74994,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:127","nodeType":"VariableDeclaration","scope":75251,"src":"28733:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74993,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74999,"initialValue":{"expression":{"baseExpression":{"id":74995,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"28754:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74997,"indexExpression":{"id":74996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28771:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"28754:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75000,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28857:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:127","memberName":"length","nodeType":"MemberAccess","src":"28857:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75102,"nodeType":"Block","src":"29009:764:127","statements":[{"assignments":[75020],"declarations":[{"constant":false,"id":75020,"mutability":"mutable","name":"exist","nameLocation":"29032:5:127","nodeType":"VariableDeclaration","scope":75102,"src":"29027:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75019,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75022,"initialValue":{"hexValue":"66616c7365","id":75021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:127"},{"body":{"id":75050,"nodeType":"Block","src":"29113:268:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75034,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29164:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75036,"indexExpression":{"id":75035,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29177:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75037,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29183:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75049,"nodeType":"IfStatement","src":"29160:203:127","trueBody":{"id":75048,"nodeType":"Block","src":"29195:168:127","statements":[{"expression":{"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75039,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75020,"src":"29221:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":75040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75042,"nodeType":"ExpressionStatement","src":"29221:12:127"},{"errorCall":{"arguments":[{"id":75044,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29292:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75045,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29304:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75043,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73180,"src":"29266:25:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":75046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75047,"nodeType":"RevertStatement","src":"29259:47:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75027,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29083:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75028,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29087:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:127","memberName":"length","nodeType":"MemberAccess","src":"29087:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75051,"initializationExpression":{"assignments":[75024],"declarations":[{"constant":false,"id":75024,"mutability":"mutable","name":"j","nameLocation":"29076:1:127","nodeType":"VariableDeclaration","scope":75051,"src":"29068:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75023,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75026,"initialValue":{"hexValue":"30","id":75025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:127"},"loopExpression":{"expression":{"id":75032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:127","subExpression":{"id":75031,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29108:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75033,"nodeType":"ExpressionStatement","src":"29108:3:127"},"nodeType":"ForStatement","src":"29063:318:127"},{"condition":{"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:127","subExpression":{"id":75052,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75020,"src":"29403:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75101,"nodeType":"IfStatement","src":"29398:361:127","trueBody":{"id":75100,"nodeType":"Block","src":"29410:349:127","statements":[{"assignments":[75058],"declarations":[{"constant":false,"id":75058,"mutability":"mutable","name":"temp","nameLocation":"29449:4:127","nodeType":"VariableDeclaration","scope":75100,"src":"29432:21:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75056,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75057,"nodeType":"ArrayTypeName","src":"29432:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":75067,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75062,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29470:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:127","memberName":"length","nodeType":"MemberAccess","src":"29470:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:127","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75059,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75060,"nodeType":"ArrayTypeName","src":"29460:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:127"},{"body":{"id":75087,"nodeType":"Block","src":"29566:74:127","statements":[{"expression":{"id":75085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75079,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29592:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75081,"indexExpression":{"id":75080,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29597:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":75082,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29602:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75084,"indexExpression":{"id":75083,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29615:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75086,"nodeType":"ExpressionStatement","src":"29592:25:127"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75072,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29536:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75073,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29540:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:127","memberName":"length","nodeType":"MemberAccess","src":"29540:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75088,"initializationExpression":{"assignments":[75069],"declarations":[{"constant":false,"id":75069,"mutability":"mutable","name":"j","nameLocation":"29529:1:127","nodeType":"VariableDeclaration","scope":75088,"src":"29521:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75068,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75071,"initialValue":{"hexValue":"30","id":75070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:127"},"loopExpression":{"expression":{"id":75077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:127","subExpression":{"id":75076,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29561:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75078,"nodeType":"ExpressionStatement","src":"29561:3:127"},"nodeType":"ForStatement","src":"29516:124:127"},{"expression":{"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75089,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29661:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75092,"indexExpression":{"expression":{"id":75090,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29666:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:127","memberName":"length","nodeType":"MemberAccess","src":"29666:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75093,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29689:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75095,"nodeType":"ExpressionStatement","src":"29661:38:127"},{"expression":{"id":75098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75096,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29721:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75097,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29736:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75099,"nodeType":"ExpressionStatement","src":"29721:19:127"}]}}]},"id":75103,"nodeType":"IfStatement","src":"28853:920:127","trueBody":{"id":75018,"nodeType":"Block","src":"28883:120:127","statements":[{"expression":{"id":75010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75004,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28901:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":75008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":75007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:127","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75005,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75006,"nodeType":"ArrayTypeName","src":"28920:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75011,"nodeType":"ExpressionStatement","src":"28901:31:127"},{"expression":{"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75012,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28950:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75014,"indexExpression":{"hexValue":"30","id":75013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75015,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"28968:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75017,"nodeType":"ExpressionStatement","src":"28950:28:127"}]}},{"assignments":[75105],"declarations":[{"constant":false,"id":75105,"mutability":"mutable","name":"delta","nameLocation":"29793:5:127","nodeType":"VariableDeclaration","scope":75251,"src":"29786:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75104,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75110,"initialValue":{"expression":{"baseExpression":{"id":75106,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"29801:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":75108,"indexExpression":{"id":75107,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"29818:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":75109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:127","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":73080,"src":"29801:32:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:127"},{"assignments":[75115],"declarations":[{"constant":false,"id":75115,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:127","nodeType":"VariableDeclaration","scope":75251,"src":"29848:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75114,"nodeType":"UserDefinedTypeName","pathNode":{"id":75113,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:127","29863:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"29848:23:127"},"referencedDeclaration":73076,"src":"29848:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75119,"initialValue":{"baseExpression":{"id":75116,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"29891:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75118,"indexExpression":{"id":75117,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29901:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:127"},{"assignments":[75121],"declarations":[{"constant":false,"id":75121,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:127","nodeType":"VariableDeclaration","scope":75251,"src":"30014:28:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75120,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75126,"initialValue":{"baseExpression":{"expression":{"id":75122,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30045:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"30045:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":75125,"indexExpression":{"id":75124,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30072:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:127"},{"assignments":[75128],"declarations":[{"constant":false,"id":75128,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:127","nodeType":"VariableDeclaration","scope":75251,"src":"30245:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75127,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75133,"initialValue":{"arguments":[{"id":75130,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"30280:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75131,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75105,"src":"30302:5:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75129,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"30268:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:127"},{"expression":{"id":75140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75134,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30443:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"30443:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":75138,"indexExpression":{"id":75136,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30470:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75139,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"30481:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75141,"nodeType":"ExpressionStatement","src":"30443:50:127"},{"assignments":[75143],"declarations":[{"constant":false,"id":75143,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:127","nodeType":"VariableDeclaration","scope":75251,"src":"30727:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75142,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75145,"initialValue":{"hexValue":"66616c7365","id":75144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:127"},{"body":{"id":75174,"nodeType":"Block","src":"30832:179:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":75159,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"30854:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75161,"indexExpression":{"id":75160,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30875:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75163,"indexExpression":{"id":75162,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30884:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75164,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30890:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"30890:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75173,"nodeType":"IfStatement","src":"30850:147:127","trueBody":{"id":75172,"nodeType":"Block","src":"30911:86:127","statements":[{"expression":{"id":75169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75167,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75143,"src":"30933:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":75168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75170,"nodeType":"ExpressionStatement","src":"30933:18:127"},{"id":75171,"nodeType":"Break","src":"30973:5:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30785:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":75151,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"30789:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75153,"indexExpression":{"id":75152,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30810:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:127","memberName":"length","nodeType":"MemberAccess","src":"30789:36:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75175,"initializationExpression":{"assignments":[75147],"declarations":[{"constant":false,"id":75147,"mutability":"mutable","name":"k","nameLocation":"30778:1:127","nodeType":"VariableDeclaration","scope":75175,"src":"30770:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75146,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75149,"initialValue":{"hexValue":"30","id":75148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:127"},"loopExpression":{"expression":{"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:127","subExpression":{"id":75156,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30827:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75158,"nodeType":"ExpressionStatement","src":"30827:3:127"},"nodeType":"ForStatement","src":"30765:246:127"},{"condition":{"id":75177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:127","subExpression":{"id":75176,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75143,"src":"31029:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75187,"nodeType":"IfStatement","src":"31024:106:127","trueBody":{"id":75186,"nodeType":"Block","src":"31042:88:127","statements":[{"expression":{"arguments":[{"expression":{"id":75182,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31095:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"31095:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":75178,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"31060:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75180,"indexExpression":{"id":75179,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"31081:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:127","memberName":"push","nodeType":"MemberAccess","src":"31060:34:127","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75185,"nodeType":"ExpressionStatement","src":"31060:55:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75188,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31285:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75189,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31309:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75220,"nodeType":"Block","src":"31490:161:127","statements":[{"expression":{"id":75210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75206,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"31508:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75207,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31523:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75208,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31546:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75211,"nodeType":"ExpressionStatement","src":"31508:50:127"},{"expression":{"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75212,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31576:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31576:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75215,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31601:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75216,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31624:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75219,"nodeType":"ExpressionStatement","src":"31576:60:127"}]},"id":75221,"nodeType":"IfStatement","src":"31281:370:127","trueBody":{"id":75205,"nodeType":"Block","src":"31323:161:127","statements":[{"expression":{"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75191,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"31341:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75192,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31356:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75193,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31371:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75196,"nodeType":"ExpressionStatement","src":"31341:50:127"},{"expression":{"id":75203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31409:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31409:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75200,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31434:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75201,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31449:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75204,"nodeType":"ExpressionStatement","src":"31409:60:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75222,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31668:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"31668:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75249,"nodeType":"Block","src":"31765:209:127","statements":[{"expression":{"arguments":[{"id":75235,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31810:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75236,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31820:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75234,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"31783:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75238,"nodeType":"ExpressionStatement","src":"31783:58:127"},{"eventCall":{"arguments":[{"id":75240,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"31877:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75241,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"31886:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75242,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31898:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75243,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31912:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31912:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75245,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31935:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"31935:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75239,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73245,"src":"31864:12:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75248,"nodeType":"EmitStatement","src":"31859:100:127"}]},"id":75250,"nodeType":"IfStatement","src":"31664:310:127","trueBody":{"id":75233,"nodeType":"Block","src":"31693:66:127","statements":[{"expression":{"id":75231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31711:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"31711:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75229,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:127","memberName":"number","nodeType":"MemberAccess","src":"31732:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75232,"nodeType":"ExpressionStatement","src":"31711:33:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28685:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74987,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"28689:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:127","memberName":"length","nodeType":"MemberAccess","src":"28689:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75252,"initializationExpression":{"assignments":[74983],"declarations":[{"constant":false,"id":74983,"mutability":"mutable","name":"i","nameLocation":"28678:1:127","nodeType":"VariableDeclaration","scope":75252,"src":"28670:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74982,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74985,"initialValue":{"hexValue":"30","id":74984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:127"},"loopExpression":{"expression":{"id":74991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:127","subExpression":{"id":74990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28714:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74992,"nodeType":"ExpressionStatement","src":"28714:3:127"},"nodeType":"ForStatement","src":"28665:3319:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:127","parameters":{"id":74974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74969,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:127","nodeType":"VariableDeclaration","scope":75254,"src":"28532:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74968,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74973,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:127","nodeType":"VariableDeclaration","scope":75254,"src":"28549:56:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74971,"nodeType":"UserDefinedTypeName","pathNode":{"id":74970,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:127","28564:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"28549:30:127"},"referencedDeclaration":73081,"src":"28549:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74972,"nodeType":"ArrayTypeName","src":"28549:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:127"},"returnParameters":{"id":74975,"nodeType":"ParameterList","parameters":[],"src":"28616:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75289,"nodeType":"FunctionDefinition","src":"31996:276:127","nodes":[],"body":{"id":75288,"nodeType":"Block","src":"32082:190:127","nodes":[],"statements":[{"assignments":[75264],"declarations":[{"constant":false,"id":75264,"mutability":"mutable","name":"result","nameLocation":"32099:6:127","nodeType":"VariableDeclaration","scope":75288,"src":"32092:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75263,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75271,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75267,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75256,"src":"32115:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75265,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:127","typeDescriptions":{}}},"id":75268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75269,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75258,"src":"32127:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:127"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75272,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32148:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75282,"nodeType":"IfStatement","src":"32144:90:127","trueBody":{"id":75281,"nodeType":"Block","src":"32160:74:127","statements":[{"errorCall":{"arguments":[{"id":75276,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75256,"src":"32198:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75277,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75258,"src":"32208:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75278,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32216:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75275,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73152,"src":"32181:16:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75280,"nodeType":"RevertStatement","src":"32174:49:127"}]}},{"expression":{"arguments":[{"id":75285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32258:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75283,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:127","typeDescriptions":{}}},"id":75286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75262,"id":75287,"nodeType":"Return","src":"32243:22:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:127","parameters":{"id":75259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75256,"mutability":"mutable","name":"_support","nameLocation":"32025:8:127","nodeType":"VariableDeclaration","scope":75289,"src":"32017:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75255,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75258,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:127","nodeType":"VariableDeclaration","scope":75289,"src":"32035:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75257,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:127"},"returnParameters":{"id":75262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75289,"src":"32073:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75260,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75345,"nodeType":"FunctionDefinition","src":"32689:1145:127","nodes":[],"body":{"id":75344,"nodeType":"Block","src":"32836:998:127","nodes":[],"statements":[{"assignments":[75302],"declarations":[{"constant":false,"id":75302,"mutability":"mutable","name":"t","nameLocation":"32854:1:127","nodeType":"VariableDeclaration","scope":75344,"src":"32846:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75301,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75304,"initialValue":{"id":75303,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"32858:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:127"},{"assignments":[75306],"declarations":[{"constant":false,"id":75306,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:127","nodeType":"VariableDeclaration","scope":75344,"src":"33184:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75305,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75316,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75308,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"33210:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75312,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33226:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75314,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75302,"src":"33229:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75307,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75533,"src":"33204:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:127"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75317,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"33727:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75318,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"33739:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75321,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75296,"src":"33754:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75322,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33767:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75324,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"33772:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75325,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"33782:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75327,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75330,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33797:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75331,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"33801:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75333,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75337,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75338,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73280,"src":"33812:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75300,"id":75343,"nodeType":"Return","src":"33717:110:127"}]},"documentation":{"id":75290,"nodeType":"StructuredDocumentation","src":"32278:406:127","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:127","parameters":{"id":75297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75292,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:127","nodeType":"VariableDeclaration","scope":75345,"src":"32718:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75291,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75294,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:127","nodeType":"VariableDeclaration","scope":75345,"src":"32739:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75293,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75296,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:127","nodeType":"VariableDeclaration","scope":75345,"src":"32758:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75295,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:127"},"returnParameters":{"id":75300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75345,"src":"32823:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75298,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75433,"nodeType":"FunctionDefinition","src":"34415:1482:127","nodes":[],"body":{"id":75432,"nodeType":"Block","src":"34510:1387:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75353,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75360,"nodeType":"IfStatement","src":"34640:66:127","trueBody":{"id":75359,"nodeType":"Block","src":"34661:45:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75356,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73130,"src":"34682:11:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75358,"nodeType":"RevertStatement","src":"34675:20:127"}]}},{"condition":{"arguments":[{"id":75362,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75348,"src":"35162:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75361,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74871,"src":"35146:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75368,"nodeType":"IfStatement","src":"35142:91:127","trueBody":{"id":75367,"nodeType":"Block","src":"35181:52:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75364,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73138,"src":"35202:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75366,"nodeType":"RevertStatement","src":"35195:27:127"}]}},{"assignments":[75370],"declarations":[{"constant":false,"id":75370,"mutability":"mutable","name":"denom","nameLocation":"35389:5:127","nodeType":"VariableDeclaration","scope":75432,"src":"35381:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75369,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75388,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75371,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"35398:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75376,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75377,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35420:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75379,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75348,"src":"35425:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75385,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:127"},{"expression":{"id":75421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75389,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35475:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75390,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"35507:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75393,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75394,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35524:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75396,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75397,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"35531:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75398,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"35539:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75406,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35556:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75409,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35562:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75410,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"35566:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75415,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75541,"src":"35576:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75422,"nodeType":"ExpressionStatement","src":"35475:145:127"},{"expression":{"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75423,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35810:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75424,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35823:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75425,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"35836:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75428,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"35871:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:127","trueExpression":{"id":75427,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35858:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75431,"nodeType":"ExpressionStatement","src":"35810:80:127"}]},"documentation":{"id":75346,"nodeType":"StructuredDocumentation","src":"33840:570:127","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:127","parameters":{"id":75349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75348,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:127","nodeType":"VariableDeclaration","scope":75433,"src":"34443:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75347,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:127"},"returnParameters":{"id":75352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75351,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:127","nodeType":"VariableDeclaration","scope":75433,"src":"34490:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75350,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75468,"nodeType":"FunctionDefinition","src":"36158:269:127","nodes":[],"body":{"id":75467,"nodeType":"Block","src":"36236:191:127","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75444,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75436,"src":"36254:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75445,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36260:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75449,"nodeType":"ExpressionStatement","src":"36246:66:127"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75451,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75438,"src":"36330:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75452,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36335:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75456,"nodeType":"ExpressionStatement","src":"36322:53:127"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75457,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75436,"src":"36394:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75458,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75438,"src":"36399:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75461,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73280,"src":"36405:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75463,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75442,"id":75466,"nodeType":"Return","src":"36385:35:127"}]},"documentation":{"id":75434,"nodeType":"StructuredDocumentation","src":"35903:250:127","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:127","parameters":{"id":75439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75436,"mutability":"mutable","name":"_a","nameLocation":"36180:2:127","nodeType":"VariableDeclaration","scope":75468,"src":"36172:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75435,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75438,"mutability":"mutable","name":"_b","nameLocation":"36192:2:127","nodeType":"VariableDeclaration","scope":75468,"src":"36184:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75437,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:127"},"returnParameters":{"id":75442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75441,"mutability":"mutable","name":"_result","nameLocation":"36227:7:127","nodeType":"VariableDeclaration","scope":75468,"src":"36219:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75440,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75533,"nodeType":"FunctionDefinition","src":"36649:447:127","nodes":[],"body":{"id":75532,"nodeType":"Block","src":"36727:369:127","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75479,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"36745:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75480,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36750:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75484,"nodeType":"ExpressionStatement","src":"36737:53:127"},{"assignments":[75486],"declarations":[{"constant":false,"id":75486,"mutability":"mutable","name":"a","nameLocation":"36808:1:127","nodeType":"VariableDeclaration","scope":75532,"src":"36800:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75485,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75488,"initialValue":{"id":75487,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"36812:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:127"},{"assignments":[75490],"declarations":[{"constant":false,"id":75490,"mutability":"mutable","name":"b","nameLocation":"36832:1:127","nodeType":"VariableDeclaration","scope":75532,"src":"36824:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75489,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75492,"initialValue":{"id":75491,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75473,"src":"36836:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:127"},{"expression":{"id":75495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75493,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"36848:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75494,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36858:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75496,"nodeType":"ExpressionStatement","src":"36848:17:127"},{"body":{"id":75530,"nodeType":"Block","src":"36889:201:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75500,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36907:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75528,"nodeType":"Block","src":"36997:83:127","statements":[{"expression":{"id":75522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75517,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"37015:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75519,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"37030:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75520,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"37039:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75518,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75468,"src":"37025:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75523,"nodeType":"ExpressionStatement","src":"37015:26:127"},{"expression":{"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"37059:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75527,"nodeType":"ExpressionStatement","src":"37059:6:127"}]},"id":75529,"nodeType":"IfStatement","src":"36903:177:127","trueBody":{"id":75516,"nodeType":"Block","src":"36919:72:127","statements":[{"expression":{"id":75510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36937:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75507,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36946:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75508,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36949:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75506,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75468,"src":"36941:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75511,"nodeType":"ExpressionStatement","src":"36937:14:127"},{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75512,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36969:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"36969:7:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75497,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36882:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75531,"nodeType":"WhileStatement","src":"36875:215:127"}]},"documentation":{"id":75469,"nodeType":"StructuredDocumentation","src":"36433:211:127","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:127","parameters":{"id":75474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75471,"mutability":"mutable","name":"_a","nameLocation":"36671:2:127","nodeType":"VariableDeclaration","scope":75533,"src":"36663:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75470,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75473,"mutability":"mutable","name":"_b","nameLocation":"36683:2:127","nodeType":"VariableDeclaration","scope":75533,"src":"36675:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75472,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:127"},"returnParameters":{"id":75477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75476,"mutability":"mutable","name":"_result","nameLocation":"36718:7:127","nodeType":"VariableDeclaration","scope":75533,"src":"36710:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75475,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75541,"nodeType":"FunctionDefinition","src":"37102:112:127","nodes":[],"body":{"id":75540,"nodeType":"Block","src":"37170:44:127","nodes":[],"statements":[{"expression":{"id":75538,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"37187:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75537,"id":75539,"nodeType":"Return","src":"37180:27:127"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:127","parameters":{"id":75534,"nodeType":"ParameterList","parameters":[],"src":"37137:2:127"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75541,"src":"37161:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75535,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75582,"nodeType":"FunctionDefinition","src":"37404:396:127","nodes":[],"body":{"id":75581,"nodeType":"Block","src":"37512:288:127","nodes":[],"statements":[{"assignments":[75551,75553],"declarations":[{"constant":false,"id":75551,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:127","nodeType":"VariableDeclaration","scope":75581,"src":"37523:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75550,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75553,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:127","nodeType":"VariableDeclaration","scope":75581,"src":"37543:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75552,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75558,"initialValue":{"arguments":[{"id":75555,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37600:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75556,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75547,"src":"37611:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75554,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"37566:33:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75559,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"37636:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75562,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"37655:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75568,"nodeType":"IfStatement","src":"37632:72:127","trueBody":{"id":75567,"nodeType":"Block","src":"37673:31:127","statements":[{"functionReturnParameters":75549,"id":75566,"nodeType":"Return","src":"37687:7:127"}]}},{"expression":{"id":75573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75569,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37713:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"37713:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75572,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"37735:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75574,"nodeType":"ExpressionStatement","src":"37713:33:127"},{"expression":{"id":75579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75575,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37756:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"37756:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75578,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"37783:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75580,"nodeType":"ExpressionStatement","src":"37756:37:127"}]},"documentation":{"id":75542,"nodeType":"StructuredDocumentation","src":"37220:179:127","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:127","parameters":{"id":75548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75545,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:127","nodeType":"VariableDeclaration","scope":75582,"src":"37440:41:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75544,"nodeType":"UserDefinedTypeName","pathNode":{"id":75543,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:127","37455:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"37440:23:127"},"referencedDeclaration":73076,"src":"37440:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75547,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:127","nodeType":"VariableDeclaration","scope":75582,"src":"37483:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75546,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:127"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[],"src":"37512:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75629,"nodeType":"FunctionDefinition","src":"37806:719:127","nodes":[],"body":{"id":75628,"nodeType":"Block","src":"38004:521:127","nodes":[],"statements":[{"expression":{"id":75597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75594,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38014:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75595,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:127","memberName":"number","nodeType":"MemberAccess","src":"38028:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75598,"nodeType":"ExpressionStatement","src":"38014:26:127"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75600,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38057:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38057:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75602,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38080:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75599,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:127","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75605,"nodeType":"ExpressionStatement","src":"38050:42:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75606,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38106:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38106:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75608,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38129:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75615,"nodeType":"IfStatement","src":"38102:173:127","trueBody":{"id":75614,"nodeType":"Block","src":"38142:133:127","statements":[{"expression":{"components":[{"hexValue":"30","id":75610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75612,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:127","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75593,"id":75613,"nodeType":"Return","src":"38222:13:127"}]}},{"expression":{"id":75626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75616,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75590,"src":"38328:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75618,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38374:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75619,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38388:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38388:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75622,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38460:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"38460:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75624,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75587,"src":"38498:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75617,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75345,"src":"38341:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75627,"nodeType":"ExpressionStatement","src":"38328:190:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:127","parameters":{"id":75588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75585,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:127","nodeType":"VariableDeclaration","scope":75629,"src":"37849:41:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75584,"nodeType":"UserDefinedTypeName","pathNode":{"id":75583,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:127","37864:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"37849:23:127"},"referencedDeclaration":73076,"src":"37849:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75587,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:127","nodeType":"VariableDeclaration","scope":75629,"src":"37892:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75586,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:127"},"returnParameters":{"id":75593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75590,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:127","nodeType":"VariableDeclaration","scope":75629,"src":"37959:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75589,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75592,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:127","nodeType":"VariableDeclaration","scope":75629,"src":"37979:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75591,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75677,"nodeType":"FunctionDefinition","src":"38531:520:127","nodes":[],"body":{"id":75676,"nodeType":"Block","src":"38610:441:127","nodes":[],"statements":[{"assignments":[75640],"declarations":[{"constant":false,"id":75640,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:127","nodeType":"VariableDeclaration","scope":75676,"src":"38620:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75639,"nodeType":"UserDefinedTypeName","pathNode":{"id":75638,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:127","38635:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"38620:23:127"},"referencedDeclaration":73076,"src":"38620:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75644,"initialValue":{"baseExpression":{"id":75641,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"38663:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75643,"indexExpression":{"id":75642,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38673:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38699:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"38699:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75647,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38722:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75654,"nodeType":"IfStatement","src":"38695:100:127","trueBody":{"id":75653,"nodeType":"Block","src":"38734:61:127","statements":[{"errorCall":{"arguments":[{"id":75650,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38773:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75649,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"38755:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75652,"nodeType":"RevertStatement","src":"38748:36:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"id":75660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75655,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38809:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"38809:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75657,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"38836:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":75658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"38836:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"38836:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75666,"nodeType":"IfStatement","src":"38805:130:127","trueBody":{"id":75665,"nodeType":"Block","src":"38874:61:127","statements":[{"errorCall":{"arguments":[{"id":75662,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38913:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75661,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73170,"src":"38895:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75664,"nodeType":"RevertStatement","src":"38888:36:127"}]}},{"expression":{"arguments":[{"id":75668,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38972:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75669,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38982:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"38982:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75667,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"38945:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75672,"nodeType":"ExpressionStatement","src":"38945:59:127"},{"expression":{"expression":{"id":75673,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"39021:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"39021:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75635,"id":75675,"nodeType":"Return","src":"39014:30:127"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:127","parameters":{"id":75632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75631,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:127","nodeType":"VariableDeclaration","scope":75677,"src":"38565:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75630,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:127"},"returnParameters":{"id":75635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75677,"src":"38601:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75633,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75696,"nodeType":"FunctionDefinition","src":"39057:124:127","nodes":[],"body":{"id":75695,"nodeType":"Block","src":"39129:52:127","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75679,"src":"39148:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75685,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"39157:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75688,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"39163:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75689,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"39167:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75691,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75683,"id":75694,"nodeType":"Return","src":"39139:35:127"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:127","parameters":{"id":75680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75679,"mutability":"mutable","name":"amount","nameLocation":"39091:6:127","nodeType":"VariableDeclaration","scope":75696,"src":"39083:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75678,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:127"},"returnParameters":{"id":75683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75696,"src":"39120:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75681,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75714,"nodeType":"FunctionDefinition","src":"39187:137:127","nodes":[],"body":{"id":75713,"nodeType":"Block","src":"39258:66:127","nodes":[],"statements":[{"expression":{"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75705,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"39268:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75706,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75698,"src":"39276:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75708,"nodeType":"ExpressionStatement","src":"39268:14:127"},{"eventCall":{"arguments":[{"id":75710,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75698,"src":"39310:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75709,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73253,"src":"39297:12:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75712,"nodeType":"EmitStatement","src":"39292:25:127"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75703,"kind":"modifierInvocation","modifierName":{"id":75700,"name":"onlyPoolManager","nameLocations":["39230:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:127"},"nodeType":"ModifierInvocation","src":"39230:27:127"}],"name":"setDecay","nameLocation":"39196:8:127","parameters":{"id":75699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75698,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:127","nodeType":"VariableDeclaration","scope":75714,"src":"39205:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75697,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:127"},"returnParameters":{"id":75704,"nodeType":"ParameterList","parameters":[],"src":"39258:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75732,"nodeType":"FunctionDefinition","src":"39330:155:127","nodes":[],"body":{"id":75731,"nodeType":"Block","src":"39407:78:127","nodes":[],"statements":[{"expression":{"id":75725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75723,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"39417:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75724,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"39428:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75726,"nodeType":"ExpressionStatement","src":"39417:20:127"},{"eventCall":{"arguments":[{"id":75728,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"39468:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75727,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73257,"src":"39452:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75730,"nodeType":"EmitStatement","src":"39447:31:127"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75721,"kind":"modifierInvocation","modifierName":{"id":75718,"name":"onlyPoolManager","nameLocations":["39379:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:127"},"nodeType":"ModifierInvocation","src":"39379:27:127"}],"name":"setMaxRatio","nameLocation":"39339:11:127","parameters":{"id":75717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75716,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:127","nodeType":"VariableDeclaration","scope":75732,"src":"39351:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75715,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:127"},"returnParameters":{"id":75722,"nodeType":"ParameterList","parameters":[],"src":"39407:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75750,"nodeType":"FunctionDefinition","src":"39491:143:127","nodes":[],"body":{"id":75749,"nodeType":"Block","src":"39564:70:127","nodes":[],"statements":[{"expression":{"id":75743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75741,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"39574:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75742,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75734,"src":"39583:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75744,"nodeType":"ExpressionStatement","src":"39574:16:127"},{"eventCall":{"arguments":[{"id":75746,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75734,"src":"39619:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75745,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73261,"src":"39605:13:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75748,"nodeType":"EmitStatement","src":"39600:27:127"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75737,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75739,"kind":"modifierInvocation","modifierName":{"id":75736,"name":"onlyPoolManager","nameLocations":["39536:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:127"},"nodeType":"ModifierInvocation","src":"39536:27:127"}],"name":"setWeight","nameLocation":"39500:9:127","parameters":{"id":75735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75734,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:127","nodeType":"VariableDeclaration","scope":75750,"src":"39510:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75733,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:127"},"returnParameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"39564:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75770,"nodeType":"FunctionDefinition","src":"39640:219:127","nodes":[],"body":{"id":75769,"nodeType":"Block","src":"39735:124:127","nodes":[],"statements":[{"expression":{"id":75763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75759,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"39745:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75761,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75752,"src":"39783:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75760,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"39765:17:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77913_$","typeString":"type(contract RegistryCommunity)"}},"id":75762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"src":"39745:57:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":75764,"nodeType":"ExpressionStatement","src":"39745:57:127"},{"eventCall":{"arguments":[{"id":75766,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75752,"src":"39833:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75765,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73265,"src":"39817:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75768,"nodeType":"EmitStatement","src":"39812:40:127"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75757,"kind":"modifierInvocation","modifierName":{"id":75754,"name":"onlyPoolManager","nameLocations":["39707:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:127"},"nodeType":"ModifierInvocation","src":"39707:27:127"}],"name":"setRegistryCommunity","nameLocation":"39649:20:127","parameters":{"id":75753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75752,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:127","nodeType":"VariableDeclaration","scope":75770,"src":"39670:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75751,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:127"},"returnParameters":{"id":75758,"nodeType":"ParameterList","parameters":[],"src":"39735:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75789,"nodeType":"FunctionDefinition","src":"39865:237:127","nodes":[],"body":{"id":75788,"nodeType":"Block","src":"39962:140:127","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75780,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"40003:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75781,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75772,"src":"40024:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75779,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73271,"src":"39977:25:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75783,"nodeType":"EmitStatement","src":"39972:72:127"},{"expression":{"id":75786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75784,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"40054:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75785,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75772,"src":"40076:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75787,"nodeType":"ExpressionStatement","src":"40054:41:127"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75777,"kind":"modifierInvocation","modifierName":{"id":75774,"name":"onlyPoolManager","nameLocations":["39934:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:127"},"nodeType":"ModifierInvocation","src":"39934:27:127"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:127","parameters":{"id":75773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75772,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:127","nodeType":"VariableDeclaration","scope":75789,"src":"39896:27:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75771,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:127"},"returnParameters":{"id":75778,"nodeType":"ParameterList","parameters":[],"src":"39962:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":73114,"name":"BaseStrategy","nameLocations":["2845:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:127"},"id":73115,"nodeType":"InheritanceSpecifier","src":"2845:12:127"},{"baseName":{"id":73116,"name":"IPointStrategy","nameLocations":["2859:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73022,"src":"2859:14:127"},"id":73117,"nodeType":"InheritanceSpecifier","src":"2859:14:127"},{"baseName":{"id":73118,"name":"ERC165","nameLocations":["2875:6:127"],"nodeType":"IdentifierPath","referencedDeclaration":58322,"src":"2875:6:127"},"id":73119,"nodeType":"InheritanceSpecifier","src":"2875:6:127"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75790,58322,58528,73022,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:127","scope":75791,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,73124,73126,73128,73130,73132,73134,73136,73138,73140,73142,73144,73152,73154,73156,73162,73164,73166,73170,73174,73180,73182,73184,73192]}],"license":"AGPL-3.0-only"},"id":127} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json b/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json index b0864de3e..446190393 100644 --- a/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json +++ b/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUntake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deactivatePoints(address)":"6453d9c4","decreasePower(address,uint256)":"2ed04b2b","getPointSystem()":"c3292171","increasePower(address,uint256)":"782aadff"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUntake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"IPointStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUntake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"IPointStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"id":109} \ No newline at end of file +{"abi":[{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUntake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deactivatePoints(address)":"6453d9c4","decreasePower(address,uint256)":"2ed04b2b","getPointSystem()":"c3292171","increasePower(address,uint256)":"782aadff"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUntake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"IPointStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUntake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"IPointStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75791,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75790],"ERC165":[58322],"ERC20":[57039],"IAllo":[2610],"IERC165":[58528],"IPointStrategy":[73022],"Math":[59394],"Metadata":[3098],"RegistryCommunity":[77913],"StrategyStruct":[73113],"console":[29766]},"nodeType":"SourceUnit","src":"42:40063:127","nodes":[{"id":72977,"nodeType":"PragmaDirective","src":"42:24:127","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72980,"nodeType":"ImportDirective","src":"68:82:127","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72978,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72979,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72983,"nodeType":"ImportDirective","src":"152:68:127","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":77914,"symbolAliases":[{"foreign":{"id":72981,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"160:17:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72982,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72986,"nodeType":"ImportDirective","src":"221:87:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":58323,"symbolAliases":[{"foreign":{"id":72984,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58322,"src":"229:6:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72985,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"237:7:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72988,"nodeType":"ImportDirective","src":"309:68:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":57040,"symbolAliases":[{"foreign":{"id":72987,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"317:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72990,"nodeType":"ImportDirective","src":"379:46:127","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":29767,"symbolAliases":[{"foreign":{"id":72989,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"387:7:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72992,"nodeType":"ImportDirective","src":"427:65:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":59395,"symbolAliases":[{"foreign":{"id":72991,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"435:4:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73022,"nodeType":"ContractDefinition","src":"494:355:127","nodes":[{"id":72997,"nodeType":"FunctionDefinition","src":"525:52:127","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:127","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72994,"mutability":"mutable","name":"_member","nameLocation":"559:7:127","nodeType":"VariableDeclaration","scope":72997,"src":"551:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72993,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:127"},"returnParameters":{"id":72996,"nodeType":"ParameterList","parameters":[],"src":"576:0:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73006,"nodeType":"FunctionDefinition","src":"582:91:127","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:127","parameters":{"id":73002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72999,"mutability":"mutable","name":"_member","nameLocation":"613:7:127","nodeType":"VariableDeclaration","scope":73006,"src":"605:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72998,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73001,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:127","nodeType":"VariableDeclaration","scope":73006,"src":"622:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73000,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:127"},"returnParameters":{"id":73005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73006,"src":"664:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73003,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73015,"nodeType":"FunctionDefinition","src":"678:92:127","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:127","parameters":{"id":73011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73008,"mutability":"mutable","name":"_member","nameLocation":"709:7:127","nodeType":"VariableDeclaration","scope":73015,"src":"701:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73007,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73010,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:127","nodeType":"VariableDeclaration","scope":73015,"src":"718:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:127"},"returnParameters":{"id":73014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73015,"src":"761:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73012,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73021,"nodeType":"FunctionDefinition","src":"775:72:127","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:127","parameters":{"id":73016,"nodeType":"ParameterList","parameters":[],"src":"798:2:127"},"returnParameters":{"id":73020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73021,"src":"819:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73018,"nodeType":"UserDefinedTypeName","pathNode":{"id":73017,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:127","834:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"819:26:127"},"referencedDeclaration":73031,"src":"819:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[73022],"name":"IPointStrategy","nameLocation":"504:14:127","scope":75791,"usedErrors":[]},{"id":73113,"nodeType":"ContractDefinition","src":"851:1969:127","nodes":[{"id":73026,"nodeType":"EnumDefinition","src":"880:79:127","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":73023,"name":"Signaling","nameLocation":"908:9:127","nodeType":"EnumValue","src":"908:9:127"},{"id":73024,"name":"Funding","nameLocation":"927:7:127","nodeType":"EnumValue","src":"927:7:127"},{"id":73025,"name":"Streaming","nameLocation":"944:9:127","nodeType":"EnumValue","src":"944:9:127"}],"name":"ProposalType","nameLocation":"885:12:127"},{"id":73031,"nodeType":"EnumDefinition","src":"965:92:127","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":73027,"name":"Fixed","nameLocation":"992:5:127","nodeType":"EnumValue","src":"992:5:127"},{"id":73028,"name":"Capped","nameLocation":"1007:6:127","nodeType":"EnumValue","src":"1007:6:127"},{"id":73029,"name":"Unlimited","nameLocation":"1023:9:127","nodeType":"EnumValue","src":"1023:9:127"},{"id":73030,"name":"Quadratic","nameLocation":"1042:9:127","nodeType":"EnumValue","src":"1042:9:127"}],"name":"PointSystem","nameLocation":"970:11:127"},{"id":73043,"nodeType":"StructDefinition","src":"1063:243:127","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":73033,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:127","nodeType":"VariableDeclaration","scope":73043,"src":"1126:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73035,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:127","nodeType":"VariableDeclaration","scope":73043,"src":"1150:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73034,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73037,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:127","nodeType":"VariableDeclaration","scope":73043,"src":"1217:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73039,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:127","nodeType":"VariableDeclaration","scope":73043,"src":"1250:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73038,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73042,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:127","nodeType":"VariableDeclaration","scope":73043,"src":"1282:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":73041,"nodeType":"UserDefinedTypeName","pathNode":{"id":73040,"name":"Metadata","nameLocations":["1282:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:127"},"referencedDeclaration":3098,"src":"1282:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:127","scope":73113,"visibility":"public"},{"id":73049,"nodeType":"EnumDefinition","src":"1312:289:127","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":73044,"name":"Inactive","nameLocation":"1342:8:127","nodeType":"EnumValue","src":"1342:8:127"},{"id":73045,"name":"Active","nameLocation":"1372:6:127","nodeType":"EnumValue","src":"1372:6:127"},{"id":73046,"name":"Paused","nameLocation":"1435:6:127","nodeType":"EnumValue","src":"1435:6:127"},{"id":73047,"name":"Cancelled","nameLocation":"1500:9:127","nodeType":"EnumValue","src":"1500:9:127"},{"id":73048,"name":"Executed","nameLocation":"1553:8:127","nodeType":"EnumValue","src":"1553:8:127"}],"name":"ProposalStatus","nameLocation":"1317:14:127"},{"id":73076,"nodeType":"StructDefinition","src":"1607:405:127","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":73051,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:127","nodeType":"VariableDeclaration","scope":73076,"src":"1633:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73053,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:127","nodeType":"VariableDeclaration","scope":73076,"src":"1661:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73052,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73055,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:127","nodeType":"VariableDeclaration","scope":73076,"src":"1694:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73057,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1724:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73056,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73059,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:127","nodeType":"VariableDeclaration","scope":73076,"src":"1756:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73058,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73061,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:127","nodeType":"VariableDeclaration","scope":73076,"src":"1785:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73060,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73063,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1812:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73062,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73065,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:127","nodeType":"VariableDeclaration","scope":73076,"src":"1844:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73064,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73068,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1871:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":73067,"nodeType":"UserDefinedTypeName","pathNode":{"id":73066,"name":"ProposalStatus","nameLocations":["1871:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73049,"src":"1871:14:127"},"referencedDeclaration":73049,"src":"1871:14:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":73072,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:127","nodeType":"VariableDeclaration","scope":73076,"src":"1910:45:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73071,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73069,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73070,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":73075,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:127","nodeType":"VariableDeclaration","scope":73076,"src":"1988:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":73074,"nodeType":"UserDefinedTypeName","pathNode":{"id":73073,"name":"Metadata","nameLocations":["1988:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:127"},"referencedDeclaration":3098,"src":"1988:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:127","scope":73113,"visibility":"public"},{"id":73081,"nodeType":"StructDefinition","src":"2018:126:127","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":73078,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:127","nodeType":"VariableDeclaration","scope":73081,"src":"2051:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73077,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73080,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:127","nodeType":"VariableDeclaration","scope":73081,"src":"2079:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73079,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:127","scope":73113,"visibility":"public"},{"id":73084,"nodeType":"StructDefinition","src":"2150:89:127","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":73083,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:127","nodeType":"VariableDeclaration","scope":73084,"src":"2215:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73082,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:127","scope":73113,"visibility":"public"},{"id":73089,"nodeType":"StructDefinition","src":"2245:88:127","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":73086,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:127","nodeType":"VariableDeclaration","scope":73089,"src":"2274:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73085,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73088,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:127","nodeType":"VariableDeclaration","scope":73089,"src":"2309:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73087,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:127","scope":73113,"visibility":"public"},{"id":73112,"nodeType":"StructDefinition","src":"2339:479:127","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":73091,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:127","nodeType":"VariableDeclaration","scope":73112,"src":"2373:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73090,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73093,"mutability":"mutable","name":"decay","nameLocation":"2445:5:127","nodeType":"VariableDeclaration","scope":73112,"src":"2437:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73092,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73095,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:127","nodeType":"VariableDeclaration","scope":73112,"src":"2507:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73094,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73097,"mutability":"mutable","name":"weight","nameLocation":"2569:6:127","nodeType":"VariableDeclaration","scope":73112,"src":"2561:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73099,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:127","nodeType":"VariableDeclaration","scope":73112,"src":"2585:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73102,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:127","nodeType":"VariableDeclaration","scope":73112,"src":"2646:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73101,"nodeType":"UserDefinedTypeName","pathNode":{"id":73100,"name":"ProposalType","nameLocations":["2646:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"2646:12:127"},"referencedDeclaration":73026,"src":"2646:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":73105,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2716:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73104,"nodeType":"UserDefinedTypeName","pathNode":{"id":73103,"name":"PointSystem","nameLocations":["2716:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"2716:11:127"},"referencedDeclaration":73031,"src":"2716:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":73108,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2749:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73107,"nodeType":"UserDefinedTypeName","pathNode":{"id":73106,"name":"PointSystemConfig","nameLocations":["2749:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"2749:17:127"},"referencedDeclaration":73084,"src":"2749:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":73111,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2788:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$73089_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":73110,"nodeType":"UserDefinedTypeName","pathNode":{"id":73109,"name":"SybilConfig","nameLocations":["2788:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73089,"src":"2788:11:127"},"referencedDeclaration":73089,"src":"2788:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$73089_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:127","scope":73113,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[73113],"name":"StrategyStruct","nameLocation":"859:14:127","scope":75791,"usedErrors":[]},{"id":75790,"nodeType":"ContractDefinition","src":"2822:37282:127","nodes":[{"id":73122,"nodeType":"UsingForDirective","src":"2888:23:127","nodes":[],"global":false,"libraryName":{"id":73120,"name":"Math","nameLocations":["2894:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":59394,"src":"2894:4:127"},"typeName":{"id":73121,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":73124,"nodeType":"ErrorDefinition","src":"3082:25:127","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:127","parameters":{"id":73123,"nodeType":"ParameterList","parameters":[],"src":"3104:2:127"}},{"id":73126,"nodeType":"ErrorDefinition","src":"3126:26:127","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:127","parameters":{"id":73125,"nodeType":"ParameterList","parameters":[],"src":"3149:2:127"}},{"id":73128,"nodeType":"ErrorDefinition","src":"3170:23:127","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:127","parameters":{"id":73127,"nodeType":"ParameterList","parameters":[],"src":"3190:2:127"}},{"id":73130,"nodeType":"ErrorDefinition","src":"3212:20:127","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:127","parameters":{"id":73129,"nodeType":"ParameterList","parameters":[],"src":"3229:2:127"}},{"id":73132,"nodeType":"ErrorDefinition","src":"3251:23:127","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:127","parameters":{"id":73131,"nodeType":"ParameterList","parameters":[],"src":"3271:2:127"}},{"id":73134,"nodeType":"ErrorDefinition","src":"3292:26:127","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:127","parameters":{"id":73133,"nodeType":"ParameterList","parameters":[],"src":"3315:2:127"}},{"id":73136,"nodeType":"ErrorDefinition","src":"3336:24:127","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:127","parameters":{"id":73135,"nodeType":"ParameterList","parameters":[],"src":"3357:2:127"}},{"id":73138,"nodeType":"ErrorDefinition","src":"3379:27:127","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:127","parameters":{"id":73137,"nodeType":"ParameterList","parameters":[],"src":"3403:2:127"}},{"id":73140,"nodeType":"ErrorDefinition","src":"3425:27:127","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:127","parameters":{"id":73139,"nodeType":"ParameterList","parameters":[],"src":"3449:2:127"}},{"id":73142,"nodeType":"ErrorDefinition","src":"3470:28:127","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:127","parameters":{"id":73141,"nodeType":"ParameterList","parameters":[],"src":"3495:2:127"}},{"id":73144,"nodeType":"ErrorDefinition","src":"3516:29:127","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:127","parameters":{"id":73143,"nodeType":"ParameterList","parameters":[],"src":"3542:2:127"}},{"id":73152,"nodeType":"ErrorDefinition","src":"3564:72:127","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:127","parameters":{"id":73151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73146,"mutability":"mutable","name":"_support","nameLocation":"3595:8:127","nodeType":"VariableDeclaration","scope":73152,"src":"3587:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73145,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73148,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:127","nodeType":"VariableDeclaration","scope":73152,"src":"3605:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73147,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":73150,"mutability":"mutable","name":"_result","nameLocation":"3627:7:127","nodeType":"VariableDeclaration","scope":73152,"src":"3620:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73149,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:127"}},{"id":73154,"nodeType":"ErrorDefinition","src":"3655:25:127","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:127","parameters":{"id":73153,"nodeType":"ParameterList","parameters":[],"src":"3677:2:127"}},{"id":73156,"nodeType":"ErrorDefinition","src":"3699:32:127","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:127","parameters":{"id":73155,"nodeType":"ParameterList","parameters":[],"src":"3728:2:127"}},{"id":73162,"nodeType":"ErrorDefinition","src":"3750:77:127","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:127","parameters":{"id":73161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73158,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:127","nodeType":"VariableDeclaration","scope":73162,"src":"3781:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73157,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73160,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:127","nodeType":"VariableDeclaration","scope":73162,"src":"3804:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73159,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:127"}},{"id":73164,"nodeType":"ErrorDefinition","src":"3847:28:127","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:127","parameters":{"id":73163,"nodeType":"ParameterList","parameters":[],"src":"3872:2:127"}},{"id":73166,"nodeType":"ErrorDefinition","src":"3893:31:127","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:127","parameters":{"id":73165,"nodeType":"ParameterList","parameters":[],"src":"3921:2:127"}},{"id":73170,"nodeType":"ErrorDefinition","src":"3942:45:127","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:127","parameters":{"id":73169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73168,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:127","nodeType":"VariableDeclaration","scope":73170,"src":"3966:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73167,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:127"}},{"id":73174,"nodeType":"ErrorDefinition","src":"4006:45:127","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:127","parameters":{"id":73173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73172,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:127","nodeType":"VariableDeclaration","scope":73174,"src":"4030:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73171,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:127"}},{"id":73180,"nodeType":"ErrorDefinition","src":"4070:68:127","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:127","parameters":{"id":73179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73176,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:127","nodeType":"VariableDeclaration","scope":73180,"src":"4102:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73175,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73178,"mutability":"mutable","name":"index","nameLocation":"4131:5:127","nodeType":"VariableDeclaration","scope":73180,"src":"4123:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73177,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:127"}},{"id":73182,"nodeType":"ErrorDefinition","src":"4156:40:127","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:127","parameters":{"id":73181,"nodeType":"ParameterList","parameters":[],"src":"4193:2:127"}},{"id":73184,"nodeType":"ErrorDefinition","src":"4215:29:127","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:127","parameters":{"id":73183,"nodeType":"ParameterList","parameters":[],"src":"4241:2:127"}},{"id":73192,"nodeType":"ErrorDefinition","src":"4263:94:127","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:127","parameters":{"id":73191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73186,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:127","nodeType":"VariableDeclaration","scope":73192,"src":"4289:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73185,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73188,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:127","nodeType":"VariableDeclaration","scope":73192,"src":"4310:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73187,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73190,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:127","nodeType":"VariableDeclaration","scope":73192,"src":"4336:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73189,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:127"}},{"id":73199,"nodeType":"EventDefinition","src":"4542:74:127","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:127","parameters":{"id":73198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73194,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:127","nodeType":"VariableDeclaration","scope":73199,"src":"4562:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73193,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73197,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:127","nodeType":"VariableDeclaration","scope":73199,"src":"4578:36:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73196,"nodeType":"UserDefinedTypeName","pathNode":{"id":73195,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:127","4593:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"4578:31:127"},"referencedDeclaration":73112,"src":"4578:31:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:127"}},{"id":73207,"nodeType":"EventDefinition","src":"4621:75:127","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:127","parameters":{"id":73206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73201,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:127","nodeType":"VariableDeclaration","scope":73207,"src":"4639:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73200,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73203,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:127","nodeType":"VariableDeclaration","scope":73207,"src":"4659:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73202,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73205,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:127","nodeType":"VariableDeclaration","scope":73207,"src":"4680:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73204,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:127"}},{"id":73213,"nodeType":"EventDefinition","src":"4701:58:127","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:127","parameters":{"id":73212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73209,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:127","nodeType":"VariableDeclaration","scope":73213,"src":"4723:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73208,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73211,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:127","nodeType":"VariableDeclaration","scope":73213,"src":"4739:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73210,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:127"}},{"id":73217,"nodeType":"EventDefinition","src":"4764:42:127","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:127","parameters":{"id":73216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73215,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:127","nodeType":"VariableDeclaration","scope":73217,"src":"4790:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73214,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:127"}},{"id":73225,"nodeType":"EventDefinition","src":"4811:85:127","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:127","parameters":{"id":73224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73219,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:127","nodeType":"VariableDeclaration","scope":73225,"src":"4832:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73218,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73221,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:127","nodeType":"VariableDeclaration","scope":73225,"src":"4848:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73220,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73223,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:127","nodeType":"VariableDeclaration","scope":73225,"src":"4870:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73222,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:127"}},{"id":73233,"nodeType":"EventDefinition","src":"4901:87:127","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:127","parameters":{"id":73232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73227,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:127","nodeType":"VariableDeclaration","scope":73233,"src":"4922:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73226,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73229,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:127","nodeType":"VariableDeclaration","scope":73233,"src":"4938:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73228,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73231,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:127","nodeType":"VariableDeclaration","scope":73233,"src":"4962:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73230,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:127"}},{"id":73245,"nodeType":"EventDefinition","src":"4993:134:127","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:127","parameters":{"id":73244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73235,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:127","nodeType":"VariableDeclaration","scope":73245,"src":"5021:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73234,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73237,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:127","nodeType":"VariableDeclaration","scope":73245,"src":"5035:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73236,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73239,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:127","nodeType":"VariableDeclaration","scope":73245,"src":"5055:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73238,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73241,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:127","nodeType":"VariableDeclaration","scope":73245,"src":"5071:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73240,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73243,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:127","nodeType":"VariableDeclaration","scope":73245,"src":"5098:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73242,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:127"}},{"id":73249,"nodeType":"EventDefinition","src":"5132:40:127","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:127","parameters":{"id":73248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73247,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:127","nodeType":"VariableDeclaration","scope":73249,"src":"5156:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73246,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:127"}},{"id":73253,"nodeType":"EventDefinition","src":"5177:34:127","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:127","parameters":{"id":73252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73251,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:127","nodeType":"VariableDeclaration","scope":73253,"src":"5196:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73250,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:127"}},{"id":73257,"nodeType":"EventDefinition","src":"5216:40:127","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:127","parameters":{"id":73256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73255,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:127","nodeType":"VariableDeclaration","scope":73257,"src":"5238:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73254,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:127"}},{"id":73261,"nodeType":"EventDefinition","src":"5261:36:127","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:127","parameters":{"id":73260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73259,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:127","nodeType":"VariableDeclaration","scope":73261,"src":"5281:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73258,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:127"}},{"id":73265,"nodeType":"EventDefinition","src":"5302:49:127","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:127","parameters":{"id":73264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73263,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:127","nodeType":"VariableDeclaration","scope":73265,"src":"5324:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73262,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:127"}},{"id":73271,"nodeType":"EventDefinition","src":"5356:76:127","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:127","parameters":{"id":73270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73267,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:127","nodeType":"VariableDeclaration","scope":73271,"src":"5388:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73266,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73269,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:127","nodeType":"VariableDeclaration","scope":73271,"src":"5404:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73268,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:127"}},{"id":73274,"nodeType":"VariableDeclaration","src":"5806:36:127","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73272,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:127","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73277,"nodeType":"VariableDeclaration","src":"5856:70:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73275,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:127","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73280,"nodeType":"VariableDeclaration","src":"5942:69:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73278,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:127","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73283,"nodeType":"VariableDeclaration","src":"6027:53:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73281,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73286,"nodeType":"VariableDeclaration","src":"6095:49:127","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73284,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73288,"nodeType":"VariableDeclaration","src":"6272:20:127","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73287,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73290,"nodeType":"VariableDeclaration","src":"6298:23:127","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73289,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73292,"nodeType":"VariableDeclaration","src":"6327:21:127","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73291,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73295,"nodeType":"VariableDeclaration","src":"6354:34:127","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73293,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73297,"nodeType":"VariableDeclaration","src":"6394:26:127","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73296,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73299,"nodeType":"VariableDeclaration","src":"6426:35:127","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73298,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73302,"nodeType":"VariableDeclaration","src":"6467:38:127","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73300,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73304,"nodeType":"VariableDeclaration","src":"6546:47:127","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73303,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73307,"nodeType":"VariableDeclaration","src":"6678:47:127","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73306,"nodeType":"UserDefinedTypeName","pathNode":{"id":73305,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:127","6693:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"6678:27:127"},"referencedDeclaration":73026,"src":"6678:27:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73310,"nodeType":"VariableDeclaration","src":"6784:45:127","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73309,"nodeType":"UserDefinedTypeName","pathNode":{"id":73308,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:127","6799:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"6784:26:127"},"referencedDeclaration":73031,"src":"6784:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73313,"nodeType":"VariableDeclaration","src":"6835:51:127","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73312,"nodeType":"UserDefinedTypeName","pathNode":{"id":73311,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:127","6850:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"6835:32:127"},"referencedDeclaration":73084,"src":"6835:32:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73316,"nodeType":"VariableDeclaration","src":"6919:42:127","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"},"typeName":{"id":73315,"nodeType":"UserDefinedTypeName","pathNode":{"id":73314,"name":"RegistryCommunity","nameLocations":["6919:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"6919:17:127"},"referencedDeclaration":77913,"src":"6919:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73321,"nodeType":"VariableDeclaration","src":"7028:60:127","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73320,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73317,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73319,"nodeType":"UserDefinedTypeName","pathNode":{"id":73318,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:127","7062:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"7047:23:127"},"referencedDeclaration":73076,"src":"7047:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73325,"nodeType":"VariableDeclaration","src":"7144:53:127","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73324,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73322,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73323,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73330,"nodeType":"VariableDeclaration","src":"7235:57:127","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73329,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73326,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73327,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73328,"nodeType":"ArrayTypeName","src":"7254:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73343,"nodeType":"FunctionDefinition","src":"7496:72:127","nodes":[],"body":{"id":73342,"nodeType":"Block","src":"7566:2:127","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73337,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73332,"src":"7544:5:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73335,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:127","typeDescriptions":{}}},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73340,"kind":"baseConstructorSpecifier","modifierName":{"id":73334,"name":"BaseStrategy","nameLocations":["7523:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:127"},"nodeType":"ModifierInvocation","src":"7523:42:127"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73332,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:127","nodeType":"VariableDeclaration","scope":73343,"src":"7508:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73331,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:127"},"returnParameters":{"id":73341,"nodeType":"ParameterList","parameters":[],"src":"7566:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73427,"nodeType":"FunctionDefinition","src":"7574:1028:127","nodes":[],"body":{"id":73426,"nodeType":"Block","src":"7640:962:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":73351,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73345,"src":"7670:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73350,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73353,"nodeType":"ExpressionStatement","src":"7650:28:127"},{"assignments":[73358],"declarations":[{"constant":false,"id":73358,"mutability":"mutable","name":"ip","nameLocation":"7727:2:127","nodeType":"VariableDeclaration","scope":73426,"src":"7688:41:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73357,"nodeType":"UserDefinedTypeName","pathNode":{"id":73356,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:127","7703:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"7688:31:127"},"referencedDeclaration":73112,"src":"7688:31:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73366,"initialValue":{"arguments":[{"id":73361,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73347,"src":"7743:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73362,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"7751:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:127","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":73112,"src":"7751:31:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73359,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:127","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73367,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8139:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:127","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"8139:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:127","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":73370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73369,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:127","typeDescriptions":{}}},"id":73372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73378,"nodeType":"IfStatement","src":"8135:94:127","trueBody":{"id":73377,"nodeType":"Block","src":"8175:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73374,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73144,"src":"8196:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73376,"nodeType":"RevertStatement","src":"8189:29:127"}]}},{"expression":{"id":73384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73379,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"8239:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73381,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8277:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:127","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"8277:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73380,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"8259:17:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77913_$","typeString":"type(contract RegistryCommunity)"}},"id":73383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"src":"8239:59:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73385,"nodeType":"ExpressionStatement","src":"8239:59:127"},{"expression":{"id":73389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73386,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"8308:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73387,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8316:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:127","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":73093,"src":"8316:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73390,"nodeType":"ExpressionStatement","src":"8308:16:127"},{"expression":{"id":73394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73391,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"8334:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73392,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8345:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:127","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":73095,"src":"8345:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73395,"nodeType":"ExpressionStatement","src":"8334:22:127"},{"expression":{"id":73399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73396,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"8366:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73397,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8375:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:127","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":73097,"src":"8375:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73400,"nodeType":"ExpressionStatement","src":"8366:18:127"},{"expression":{"id":73404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73401,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"8394:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73402,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8409:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:127","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73102,"src":"8409:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"id":73405,"nodeType":"ExpressionStatement","src":"8394:30:127"},{"expression":{"id":73409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73406,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"8434:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73407,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8448:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:127","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":73105,"src":"8448:14:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"id":73410,"nodeType":"ExpressionStatement","src":"8434:28:127"},{"expression":{"id":73414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73411,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"8472:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73412,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8486:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:127","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":73108,"src":"8486:14:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73415,"nodeType":"ExpressionStatement","src":"8472:28:127"},{"expression":{"id":73419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73416,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"8510:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73417,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8532:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:127","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":73099,"src":"8532:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73420,"nodeType":"ExpressionStatement","src":"8510:43:127"},{"eventCall":{"arguments":[{"id":73422,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73345,"src":"8583:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73423,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8592:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73421,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73199,"src":"8569:13:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$73112_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73425,"nodeType":"EmitStatement","src":"8564:31:127"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:127","parameters":{"id":73348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73345,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:127","nodeType":"VariableDeclaration","scope":73427,"src":"7594:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73344,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73347,"mutability":"mutable","name":"_data","nameLocation":"7624:5:127","nodeType":"VariableDeclaration","scope":73427,"src":"7611:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73346,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:127"},"returnParameters":{"id":73349,"nodeType":"ParameterList","parameters":[],"src":"7640:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73431,"nodeType":"FunctionDefinition","src":"8773:83:127","nodes":[],"body":{"id":73430,"nodeType":"Block","src":"8801:55:127","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73428,"nodeType":"ParameterList","parameters":[],"src":"8781:2:127"},"returnParameters":{"id":73429,"nodeType":"ParameterList","parameters":[],"src":"8801:0:127"},"scope":75790,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73435,"nodeType":"FunctionDefinition","src":"8862:135:127","nodes":[],"body":{"id":73434,"nodeType":"Block","src":"8889:108:127","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73432,"nodeType":"ParameterList","parameters":[],"src":"8869:2:127"},"returnParameters":{"id":73433,"nodeType":"ParameterList","parameters":[],"src":"8889:0:127"},"scope":75790,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73456,"nodeType":"FunctionDefinition","src":"9003:202:127","nodes":[],"body":{"id":73455,"nodeType":"Block","src":"9094:111:127","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73443,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73437,"src":"9111:11:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73445,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"9131:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":73444,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:127","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:127","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73451,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73437,"src":"9186:11:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73449,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75790_$","typeString":"type(contract super CVStrategy)"}},"id":73450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:127","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58321,"src":"9162:23:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73442,"id":73454,"nodeType":"Return","src":"9104:94:127"}]},"baseFunctions":[58321],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:127","overrides":{"id":73439,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:127"},"parameters":{"id":73438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73437,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:127","nodeType":"VariableDeclaration","scope":73456,"src":"9030:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73436,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:127"},"returnParameters":{"id":73442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73456,"src":"9088:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73440,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:127"},"scope":75790,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73497,"nodeType":"FunctionDefinition","src":"9376:377:127","nodes":[],"body":{"id":73496,"nodeType":"Block","src":"9435:318:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73461,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73458,"src":"9449:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:127","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":73463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73462,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:127","typeDescriptions":{}}},"id":73465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73471,"nodeType":"IfStatement","src":"9445:77:127","trueBody":{"id":73470,"nodeType":"Block","src":"9472:50:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73467,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"9493:16:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73469,"nodeType":"RevertStatement","src":"9486:25:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73474,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9543:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":73473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73472,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:127","typeDescriptions":{}}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:127","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":73477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73476,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:127","typeDescriptions":{}}},"id":73479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73485,"nodeType":"IfStatement","src":"9531:100:127","trueBody":{"id":73484,"nodeType":"Block","src":"9577:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73481,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73144,"src":"9598:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73483,"nodeType":"RevertStatement","src":"9591:29:127"}]}},{"condition":{"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:127","subExpression":{"arguments":[{"id":73488,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73458,"src":"9672:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73486,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9645:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:127","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77494,"src":"9645:26:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73495,"nodeType":"IfStatement","src":"9640:93:127","trueBody":{"id":73494,"nodeType":"Block","src":"9682:51:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73491,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73126,"src":"9703:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73493,"nodeType":"RevertStatement","src":"9696:26:127"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:127","parameters":{"id":73459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73458,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:127","nodeType":"VariableDeclaration","scope":73497,"src":"9405:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73457,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:127"},"returnParameters":{"id":73460,"nodeType":"ParameterList","parameters":[],"src":"9435:0:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73513,"nodeType":"FunctionDefinition","src":"9759:162:127","nodes":[],"body":{"id":73512,"nodeType":"Block","src":"9805:116:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:127","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73504,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9841:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":73503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73502,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:127","typeDescriptions":{}}},"id":73505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"9815:100:127","trueBody":{"id":73510,"nodeType":"Block","src":"9861:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73507,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73184,"src":"9882:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"RevertStatement","src":"9875:29:127"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:127","parameters":{"id":73498,"nodeType":"ParameterList","parameters":[],"src":"9789:2:127"},"returnParameters":{"id":73499,"nodeType":"ParameterList","parameters":[],"src":"9805:0:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73529,"nodeType":"FunctionDefinition","src":"9927:132:127","nodes":[],"body":{"id":73528,"nodeType":"Block","src":"9986:73:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73518,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73515,"src":"10000:8:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:127","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":73520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73519,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:127","typeDescriptions":{}}},"id":73522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73527,"nodeType":"IfStatement","src":"9996:56:127","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73524,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73142,"src":"10031:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73526,"nodeType":"RevertStatement","src":"10024:28:127"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:127","parameters":{"id":73516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73515,"mutability":"mutable","name":"_address","nameLocation":"9962:8:127","nodeType":"VariableDeclaration","scope":73529,"src":"9954:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73514,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:127"},"returnParameters":{"id":73517,"nodeType":"ParameterList","parameters":[],"src":"9986:0:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73704,"nodeType":"FunctionDefinition","src":"10385:1945:127","nodes":[],"body":{"id":73703,"nodeType":"Block","src":"10486:1844:127","nodes":[],"statements":[{"expression":{"id":73539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73531,"src":"10541:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73540,"nodeType":"ExpressionStatement","src":"10541:5:127"},{"assignments":[73545],"declarations":[{"constant":false,"id":73545,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:127","nodeType":"VariableDeclaration","scope":73703,"src":"10556:45:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73544,"nodeType":"UserDefinedTypeName","pathNode":{"id":73543,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:127","10571:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73043,"src":"10556:29:127"},"referencedDeclaration":73043,"src":"10556:29:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73553,"initialValue":{"arguments":[{"id":73548,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73531,"src":"10615:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73549,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"10623:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:127","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":73043,"src":"10623:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73551,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:127","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73554,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"10769:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:127","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":73033,"src":"10769:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73562,"nodeType":"IfStatement","src":"10765:78:127","trueBody":{"id":73561,"nodeType":"Block","src":"10791:52:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73558,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73140,"src":"10812:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"RevertStatement","src":"10805:27:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":73567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73563,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"10919:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73564,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"10935:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:127","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":73026,"src":"10935:27:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$73026_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:127","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":73024,"src":"10935:35:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73614,"nodeType":"IfStatement","src":"10915:721:127","trueBody":{"id":73613,"nodeType":"Block","src":"10972:664:127","statements":[{"expression":{"arguments":[{"expression":{"id":73569,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11004:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73035,"src":"11004:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73568,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"10986:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73572,"nodeType":"ExpressionStatement","src":"10986:39:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73573,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11091:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11091:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:127","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":73576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73575,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:127","typeDescriptions":{}}},"id":73578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73584,"nodeType":"IfStatement","src":"11087:102:127","trueBody":{"id":73583,"nodeType":"Block","src":"11130:59:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73580,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73134,"src":"11155:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73582,"nodeType":"RevertStatement","src":"11148:26:127"}]}},{"assignments":[73586],"declarations":[{"constant":false,"id":73586,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:127","nodeType":"VariableDeclaration","scope":73613,"src":"11202:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73585,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73594,"initialValue":{"expression":{"arguments":[{"id":73591,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73587,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}},"id":73588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:127","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:127","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:127","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73595,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11276:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11276:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73597,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73586,"src":"11303:9:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73603,"nodeType":"IfStatement","src":"11272:234:127","trueBody":{"id":73602,"nodeType":"Block","src":"11314:192:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73599,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73136,"src":"11474:15:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73601,"nodeType":"RevertStatement","src":"11467:24:127"}]}},{"condition":{"arguments":[{"expression":{"id":73605,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11539:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:127","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":73037,"src":"11539:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73604,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74871,"src":"11523:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73612,"nodeType":"IfStatement","src":"11519:107:127","trueBody":{"id":73611,"nodeType":"Block","src":"11566:60:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73608,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73138,"src":"11591:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73610,"nodeType":"RevertStatement","src":"11584:27:127"}]}}]}},{"assignments":[73616],"declarations":[{"constant":false,"id":73616,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:127","nodeType":"VariableDeclaration","scope":73703,"src":"11645:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73615,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73619,"initialValue":{"id":73618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:127","subExpression":{"id":73617,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73295,"src":"11668:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:127"},{"assignments":[73624],"declarations":[{"constant":false,"id":73624,"mutability":"mutable","name":"p","nameLocation":"11725:1:127","nodeType":"VariableDeclaration","scope":73703,"src":"11693:33:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73623,"nodeType":"UserDefinedTypeName","pathNode":{"id":73622,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:127","11708:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"11693:23:127"},"referencedDeclaration":73076,"src":"11693:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73628,"initialValue":{"baseExpression":{"id":73625,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"11729:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73627,"indexExpression":{"id":73626,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"11739:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:127"},{"expression":{"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73629,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11761:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"11761:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73632,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"11776:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73634,"nodeType":"ExpressionStatement","src":"11761:25:127"},{"expression":{"id":73639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73635,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11796:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"11796:11:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73638,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73533,"src":"11810:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73640,"nodeType":"ExpressionStatement","src":"11796:21:127"},{"expression":{"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73641,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11827:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"11827:13:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11843:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73035,"src":"11843:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73647,"nodeType":"ExpressionStatement","src":"11827:36:127"},{"expression":{"id":73653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73648,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11873:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73063,"src":"11873:16:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73651,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11892:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11892:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73654,"nodeType":"ExpressionStatement","src":"11873:42:127"},{"expression":{"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73655,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11925:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"11925:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73658,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11945:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:127","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":73037,"src":"11945:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73661,"nodeType":"ExpressionStatement","src":"11925:44:127"},{"expression":{"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73662,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12030:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"12030:16:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73665,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"12049:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"12049:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"12049:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73669,"nodeType":"ExpressionStatement","src":"12030:55:127"},{"expression":{"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73670,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12095:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"12095:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73673,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:127","memberName":"number","nodeType":"MemberAccess","src":"12109:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73676,"nodeType":"ExpressionStatement","src":"12095:26:127"},{"expression":{"id":73681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73677,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12131:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"12131:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73682,"nodeType":"ExpressionStatement","src":"12131:20:127"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73683,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12197:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73075,"src":"12197:10:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73686,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"12210:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73042,"src":"12210:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73689,"nodeType":"ExpressionStatement","src":"12197:30:127"},{"eventCall":{"arguments":[{"id":73691,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73692,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"12267:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73690,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73213,"src":"12243:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73694,"nodeType":"EmitStatement","src":"12238:40:127"},{"expression":{"arguments":[{"arguments":[{"id":73699,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"12311:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73697,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:127","typeDescriptions":{}}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73695,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:127","typeDescriptions":{}}},"id":73701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73538,"id":73702,"nodeType":"Return","src":"12288:35:127"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:127","overrides":{"id":73535,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:127"},"parameters":{"id":73534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73531,"mutability":"mutable","name":"_data","nameLocation":"10426:5:127","nodeType":"VariableDeclaration","scope":73704,"src":"10413:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73530,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73533,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:127","nodeType":"VariableDeclaration","scope":73704,"src":"10433:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73532,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:127"},"returnParameters":{"id":73538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73704,"src":"10477:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73734,"nodeType":"FunctionDefinition","src":"12336:253:127","nodes":[],"body":{"id":73733,"nodeType":"Block","src":"12371:218:127","nodes":[],"statements":[{"assignments":[73708],"declarations":[{"constant":false,"id":73708,"mutability":"mutable","name":"member","nameLocation":"12389:6:127","nodeType":"VariableDeclaration","scope":73733,"src":"12381:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73707,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73711,"initialValue":{"expression":{"id":73709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:127","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:127"},{"expression":{"arguments":[{"id":73715,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"12461:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73718,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73716,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:127","typeDescriptions":{}}},"id":73719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73712,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12418:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:127","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76872,"src":"12418:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73721,"nodeType":"ExpressionStatement","src":"12418:65:127"},{"expression":{"id":73731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73722,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"12493:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73725,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"12560:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73728,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73726,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:127","typeDescriptions":{}}},"id":73729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73723,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12517:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"12517:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73732,"nodeType":"ExpressionStatement","src":"12493:89:127"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:127","parameters":{"id":73705,"nodeType":"ParameterList","parameters":[],"src":"12359:2:127"},"returnParameters":{"id":73706,"nodeType":"ParameterList","parameters":[],"src":"12371:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73743,"nodeType":"FunctionDefinition","src":"12595:81:127","nodes":[],"body":{"id":73742,"nodeType":"Block","src":"12630:46:127","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73738,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:127","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73737,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"12640:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73741,"nodeType":"ExpressionStatement","src":"12640:29:127"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:127","parameters":{"id":73735,"nodeType":"ParameterList","parameters":[],"src":"12620:2:127"},"returnParameters":{"id":73736,"nodeType":"ParameterList","parameters":[],"src":"12630:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73756,"nodeType":"FunctionDefinition","src":"12682:128:127","nodes":[],"body":{"id":73755,"nodeType":"Block","src":"12734:76:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73748,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"12744:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73750,"nodeType":"ExpressionStatement","src":"12744:23:127"},{"expression":{"arguments":[{"id":73752,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73745,"src":"12795:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73751,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"12777:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73754,"nodeType":"ExpressionStatement","src":"12777:26:127"}]},"baseFunctions":[72997],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:127","parameters":{"id":73746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73745,"mutability":"mutable","name":"_member","nameLocation":"12716:7:127","nodeType":"VariableDeclaration","scope":73756,"src":"12708:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73744,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:127"},"returnParameters":{"id":73747,"nodeType":"ParameterList","parameters":[],"src":"12734:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73791,"nodeType":"FunctionDefinition","src":"12816:351:127","nodes":[],"body":{"id":73790,"nodeType":"Block","src":"12869:298:127","nodes":[],"statements":[{"expression":{"id":73770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73761,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"12879:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73764,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"12946:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73767,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73765,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:127","typeDescriptions":{}}},"id":73768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73762,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12903:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"12903:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73771,"nodeType":"ExpressionStatement","src":"12879:90:127"},{"expression":{"arguments":[{"id":73775,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13024:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73776,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:127","typeDescriptions":{}}},"id":73779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73772,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12979:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:127","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76931,"src":"12979:44:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73781,"nodeType":"ExpressionStatement","src":"12979:68:127"},{"expression":{"arguments":[{"id":73783,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13111:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73782,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74665,"src":"13102:8:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73785,"nodeType":"ExpressionStatement","src":"13102:17:127"},{"eventCall":{"arguments":[{"id":73787,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13152:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73786,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73249,"src":"13134:17:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73789,"nodeType":"EmitStatement","src":"13129:31:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:127","parameters":{"id":73759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73758,"mutability":"mutable","name":"_member","nameLocation":"12851:7:127","nodeType":"VariableDeclaration","scope":73791,"src":"12843:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73757,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:127"},"returnParameters":{"id":73760,"nodeType":"ParameterList","parameters":[],"src":"12869:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73875,"nodeType":"FunctionDefinition","src":"13173:958:127","nodes":[],"body":{"id":73874,"nodeType":"Block","src":"13264:867:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73800,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"13319:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73802,"nodeType":"ExpressionStatement","src":"13319:23:127"},{"assignments":[73804],"declarations":[{"constant":false,"id":73804,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:127","nodeType":"VariableDeclaration","scope":73874,"src":"13352:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73803,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73806,"initialValue":{"hexValue":"30","id":73805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:127"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73807,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13394:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73808,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13409:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13409:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:127","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":73029,"src":"13409:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73819,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13539:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73820,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13554:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13554:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:127","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":73028,"src":"13554:33:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73832,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13687:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73833,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13702:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13702:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:127","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":73030,"src":"13702:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73845,"nodeType":"IfStatement","src":"13683:148:127","trueBody":{"id":73844,"nodeType":"Block","src":"13740:91:127","statements":[{"expression":{"id":73842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73837,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13754:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73839,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13796:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73840,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13805:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73838,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74088,"src":"13773:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73843,"nodeType":"ExpressionStatement","src":"13754:66:127"}]}},"id":73846,"nodeType":"IfStatement","src":"13535:296:127","trueBody":{"id":73831,"nodeType":"Block","src":"13589:88:127","statements":[{"expression":{"id":73829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73824,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13603:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73826,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13642:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73827,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13651:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73825,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"13622:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73830,"nodeType":"ExpressionStatement","src":"13603:63:127"}]}},"id":73847,"nodeType":"IfStatement","src":"13390:441:127","trueBody":{"id":73818,"nodeType":"Block","src":"13447:82:127","statements":[{"expression":{"id":73816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73812,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13461:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73814,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13503:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73813,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73941,"src":"13480:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73817,"nodeType":"ExpressionStatement","src":"13461:57:127"}]}},{"assignments":[73849],"declarations":[{"constant":false,"id":73849,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:127","nodeType":"VariableDeclaration","scope":73874,"src":"13840:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73848,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73858,"initialValue":{"arguments":[{"id":73852,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13905:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73855,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73853,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:127","typeDescriptions":{}}},"id":73856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73850,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"13859:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:127","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76406,"src":"13859:45:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:127"},{"condition":{"id":73859,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73849,"src":"13942:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73865,"nodeType":"IfStatement","src":"13938:82:127","trueBody":{"id":73864,"nodeType":"Block","src":"13955:65:127","statements":[{"expression":{"id":73862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73860,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"13969:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73861,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13993:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73863,"nodeType":"ExpressionStatement","src":"13969:40:127"}]}},{"eventCall":{"arguments":[{"id":73867,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"14049:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73868,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"14058:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73869,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"14074:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73866,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73225,"src":"14034:14:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73871,"nodeType":"EmitStatement","src":"14029:62:127"},{"expression":{"id":73872,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"14108:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73799,"id":73873,"nodeType":"Return","src":"14101:23:127"}]},"baseFunctions":[73006],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:127","parameters":{"id":73796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73793,"mutability":"mutable","name":"_member","nameLocation":"13204:7:127","nodeType":"VariableDeclaration","scope":73875,"src":"13196:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73792,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73795,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:127","nodeType":"VariableDeclaration","scope":73875,"src":"13213:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73794,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:127"},"returnParameters":{"id":73799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73875,"src":"13255:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73797,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73931,"nodeType":"FunctionDefinition","src":"14137:681:127","nodes":[],"body":{"id":73930,"nodeType":"Block","src":"14230:588:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73884,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"14240:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73886,"nodeType":"ExpressionStatement","src":"14240:23:127"},{"assignments":[73888],"declarations":[{"constant":false,"id":73888,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:127","nodeType":"VariableDeclaration","scope":73930,"src":"14319:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73887,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73890,"initialValue":{"hexValue":"30","id":73889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73891,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"14361:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73892,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"14376:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"14376:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:127","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":73029,"src":"14376:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73896,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"14416:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73897,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"14431:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"14431:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:127","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":73028,"src":"14431:33:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73916,"nodeType":"Block","src":"14562:93:127","statements":[{"expression":{"id":73914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73909,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14576:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73911,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14618:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73912,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14627:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73910,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74192,"src":"14595:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73915,"nodeType":"ExpressionStatement","src":"14576:68:127"}]},"id":73917,"nodeType":"IfStatement","src":"14357:298:127","trueBody":{"id":73908,"nodeType":"Block","src":"14466:90:127","statements":[{"expression":{"id":73906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73902,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14480:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73904,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14528:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73903,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"14499:28:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73907,"nodeType":"ExpressionStatement","src":"14480:65:127"}]}},{"expression":{"id":73920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73918,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"14664:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73919,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14688:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73921,"nodeType":"ExpressionStatement","src":"14664:40:127"},{"eventCall":{"arguments":[{"id":73923,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14734:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73924,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14743:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73925,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14761:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73922,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73233,"src":"14719:14:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73927,"nodeType":"EmitStatement","src":"14714:64:127"},{"expression":{"id":73928,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14795:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73883,"id":73929,"nodeType":"Return","src":"14788:23:127"}]},"baseFunctions":[73015],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:127","parameters":{"id":73880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73877,"mutability":"mutable","name":"_member","nameLocation":"14168:7:127","nodeType":"VariableDeclaration","scope":73931,"src":"14160:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73876,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73879,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:127","nodeType":"VariableDeclaration","scope":73931,"src":"14177:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73878,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:127"},"returnParameters":{"id":73883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73931,"src":"14221:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73881,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73941,"nodeType":"FunctionDefinition","src":"14824:126:127","nodes":[],"body":{"id":73940,"nodeType":"Block","src":"14912:38:127","nodes":[],"statements":[{"expression":{"id":73938,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73933,"src":"14929:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73937,"id":73939,"nodeType":"Return","src":"14922:21:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:127","parameters":{"id":73934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73933,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:127","nodeType":"VariableDeclaration","scope":73941,"src":"14856:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73932,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:127"},"returnParameters":{"id":73937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73941,"src":"14903:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73935,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74004,"nodeType":"FunctionDefinition","src":"14956:615:127","nodes":[],"body":{"id":74003,"nodeType":"Block","src":"15058:513:127","nodes":[],"statements":[{"assignments":[73951],"declarations":[{"constant":false,"id":73951,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:127","nodeType":"VariableDeclaration","scope":74003,"src":"15068:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73950,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73953,"initialValue":{"id":73952,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73945,"src":"15095:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:127"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73958,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15153:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73954,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15119:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15119:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73960,"nodeType":"ExpressionStatement","src":"15119:51:127"},{"assignments":[73962],"declarations":[{"constant":false,"id":73962,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:127","nodeType":"VariableDeclaration","scope":74003,"src":"15180:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73961,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73971,"initialValue":{"arguments":[{"id":73965,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73943,"src":"15245:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73968,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73966,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:127","typeDescriptions":{}}},"id":73969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73963,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15202:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"15202:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:127"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73976,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15305:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73972,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15278:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15278:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73978,"nodeType":"ExpressionStatement","src":"15278:39:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73979,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15331:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73980,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15345:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73982,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"15364:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"15364:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73993,"nodeType":"IfStatement","src":"15327:139:127","trueBody":{"id":73992,"nodeType":"Block","src":"15387:79:127","statements":[{"expression":{"id":73990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73985,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15401:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73986,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"15420:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"15420:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73988,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15444:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73991,"nodeType":"ExpressionStatement","src":"15401:54:127"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73998,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15513:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73994,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15475:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15475:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74000,"nodeType":"ExpressionStatement","src":"15475:55:127"},{"expression":{"id":74001,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15548:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73949,"id":74002,"nodeType":"Return","src":"15541:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:127","parameters":{"id":73946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73943,"mutability":"mutable","name":"_member","nameLocation":"14993:7:127","nodeType":"VariableDeclaration","scope":74004,"src":"14985:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73942,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73945,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:127","nodeType":"VariableDeclaration","scope":74004,"src":"15002:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73944,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:127"},"returnParameters":{"id":73949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74004,"src":"15049:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73947,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74088,"nodeType":"FunctionDefinition","src":"15577:730:127","nodes":[],"body":{"id":74087,"nodeType":"Block","src":"15682:625:127","nodes":[],"statements":[{"assignments":[74014],"declarations":[{"constant":false,"id":74014,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:127","nodeType":"VariableDeclaration","scope":74087,"src":"15692:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74013,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74021,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74017,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74006,"src":"15753:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74015,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15713:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:127","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77267,"src":"15713:39:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74019,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74008,"src":"15764:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:127"},{"assignments":[74023],"declarations":[{"constant":false,"id":74023,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:127","nodeType":"VariableDeclaration","scope":74087,"src":"15789:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74022,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74025,"initialValue":{"hexValue":"3138","id":74024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:127","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:127"},{"clauses":[{"block":{"id":74046,"nodeType":"Block","src":"15907:52:127","statements":[{"expression":{"id":74044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74039,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74023,"src":"15921:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74042,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74037,"src":"15939:8:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":74041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74040,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:127","typeDescriptions":{}}},"id":74043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74045,"nodeType":"ExpressionStatement","src":"15921:27:127"}]},"errorName":"","id":74047,"nodeType":"TryCatchClause","parameters":{"id":74038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74037,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:127","nodeType":"VariableDeclaration","scope":74047,"src":"15891:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74036,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:127"},"src":"15882:77:127"},{"block":{"id":74054,"nodeType":"Block","src":"15966:61:127","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":74051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":74048,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15980:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22297,"src":"15980:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":74052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74053,"nodeType":"ExpressionStatement","src":"15980:36:127"}]},"errorName":"","id":74055,"nodeType":"TryCatchClause","src":"15960:67:127"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74029,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15837:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:127","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"15837:29:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$57117_$","typeString":"function () view external returns (contract IERC20)"}},"id":74031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":74028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74027,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:127","typeDescriptions":{}}},"id":74032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74026,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"15823:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$57039_$","typeString":"type(contract ERC20)"}},"id":74033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$57039","typeString":"contract ERC20"}},"id":74034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:127","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56527,"src":"15823:56:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":74035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:127","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":74056,"nodeType":"TryStatement","src":"15819:208:127"},{"assignments":[74058],"declarations":[{"constant":false,"id":74058,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:127","nodeType":"VariableDeclaration","scope":74087,"src":"16036:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74057,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74067,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74061,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74014,"src":"16071:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":74062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":74063,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74023,"src":"16090:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74059,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"16061:4:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59394_$","typeString":"type(library Math)"}},"id":74060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:127","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58898,"src":"16061:9:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":74066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:127"},{"assignments":[74069],"declarations":[{"constant":false,"id":74069,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:127","nodeType":"VariableDeclaration","scope":74087,"src":"16108:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74068,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74078,"initialValue":{"arguments":[{"id":74072,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74006,"src":"16175:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74075,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74073,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:127","typeDescriptions":{}}},"id":74076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74070,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16132:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"16132:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:127"},{"assignments":[74080],"declarations":[{"constant":false,"id":74080,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:127","nodeType":"VariableDeclaration","scope":74087,"src":"16209:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74079,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74084,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74081,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74058,"src":"16236:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74082,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"16253:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:127"},{"expression":{"id":74085,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74080,"src":"16284:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74012,"id":74086,"nodeType":"Return","src":"16277:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:127","parameters":{"id":74009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74006,"mutability":"mutable","name":"_member","nameLocation":"15617:7:127","nodeType":"VariableDeclaration","scope":74088,"src":"15609:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74005,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74008,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:127","nodeType":"VariableDeclaration","scope":74088,"src":"15626:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74007,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:127"},"returnParameters":{"id":74012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74088,"src":"15673:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74010,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74098,"nodeType":"FunctionDefinition","src":"16313:136:127","nodes":[],"body":{"id":74097,"nodeType":"Block","src":"16409:40:127","nodes":[],"statements":[{"expression":{"id":74095,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"16426:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74094,"id":74096,"nodeType":"Return","src":"16419:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:127","parameters":{"id":74091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74090,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:127","nodeType":"VariableDeclaration","scope":74098,"src":"16351:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74089,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:127"},"returnParameters":{"id":74094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74098,"src":"16400:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74092,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74192,"nodeType":"FunctionDefinition","src":"16455:802:127","nodes":[],"body":{"id":74191,"nodeType":"Block","src":"16562:695:127","nodes":[],"statements":[{"assignments":[74108],"declarations":[{"constant":false,"id":74108,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:127","nodeType":"VariableDeclaration","scope":74191,"src":"16572:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74107,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74110,"initialValue":{"hexValue":"3138","id":74109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:127","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:127"},{"clauses":[{"block":{"id":74131,"nodeType":"Block","src":"16690:52:127","statements":[{"expression":{"id":74129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74124,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74108,"src":"16704:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74127,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74122,"src":"16722:8:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":74126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74125,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:127","typeDescriptions":{}}},"id":74128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74130,"nodeType":"ExpressionStatement","src":"16704:27:127"}]},"errorName":"","id":74132,"nodeType":"TryCatchClause","parameters":{"id":74123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74122,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:127","nodeType":"VariableDeclaration","scope":74132,"src":"16674:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74121,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:127"},"src":"16665:77:127"},{"block":{"id":74139,"nodeType":"Block","src":"16749:61:127","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":74136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":74133,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16763:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22297,"src":"16763:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":74137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74138,"nodeType":"ExpressionStatement","src":"16763:36:127"}]},"errorName":"","id":74140,"nodeType":"TryCatchClause","src":"16743:67:127"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74114,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16620:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:127","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"16620:29:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$57117_$","typeString":"function () view external returns (contract IERC20)"}},"id":74116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":74113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74112,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:127","typeDescriptions":{}}},"id":74117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74111,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"16606:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$57039_$","typeString":"type(contract ERC20)"}},"id":74118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$57039","typeString":"contract ERC20"}},"id":74119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:127","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56527,"src":"16606:56:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":74120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:127","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":74141,"nodeType":"TryStatement","src":"16602:208:127"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":74145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":74146,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74102,"src":"16851:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74142,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16819:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"16819:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":74147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74148,"nodeType":"ExpressionStatement","src":"16819:49:127"},{"assignments":[74150],"declarations":[{"constant":false,"id":74150,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:127","nodeType":"VariableDeclaration","scope":74191,"src":"16878:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74149,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74157,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74153,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74100,"src":"16942:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74151,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16902:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:127","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77267,"src":"16902:39:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74155,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74102,"src":"16953:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:127"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":74161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":74162,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"17008:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74158,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16979:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"16979:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":74163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74164,"nodeType":"ExpressionStatement","src":"16979:43:127"},{"assignments":[74166],"declarations":[{"constant":false,"id":74166,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:127","nodeType":"VariableDeclaration","scope":74191,"src":"17032:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74165,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74175,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74169,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"17067:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":74170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":74171,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74108,"src":"17089:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74167,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"17057:4:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59394_$","typeString":"type(library Math)"}},"id":74168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:127","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58898,"src":"17057:9:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":74174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:127"},{"assignments":[74177],"declarations":[{"constant":false,"id":74177,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:127","nodeType":"VariableDeclaration","scope":74191,"src":"17107:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74176,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74188,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74180,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74100,"src":"17177:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74183,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74181,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:127","typeDescriptions":{}}},"id":74184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74178,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"17134:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"17134:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74186,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74166,"src":"17203:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:127"},{"expression":{"id":74189,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"17234:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74106,"id":74190,"nodeType":"Return","src":"17227:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:127","parameters":{"id":74103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74100,"mutability":"mutable","name":"_member","nameLocation":"16495:7:127","nodeType":"VariableDeclaration","scope":74192,"src":"16487:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74099,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74102,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:127","nodeType":"VariableDeclaration","scope":74192,"src":"16504:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74101,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:127"},"returnParameters":{"id":74106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74192,"src":"16553:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74104,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74201,"nodeType":"FunctionDefinition","src":"17263:99:127","nodes":[],"body":{"id":74200,"nodeType":"Block","src":"17317:45:127","nodes":[],"statements":[{"expression":{"expression":{"id":74197,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"17334:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":74198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"17334:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74196,"id":74199,"nodeType":"Return","src":"17327:28:127"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:127","parameters":{"id":74193,"nodeType":"ParameterList","parameters":[],"src":"17284:2:127"},"returnParameters":{"id":74196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74201,"src":"17308:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74194,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74210,"nodeType":"FunctionDefinition","src":"17368:110:127","nodes":[],"body":{"id":74209,"nodeType":"Block","src":"17443:35:127","nodes":[],"statements":[{"expression":{"id":74207,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"17460:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":74206,"id":74208,"nodeType":"Return","src":"17453:18:127"}]},"baseFunctions":[73021],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:127","parameters":{"id":74202,"nodeType":"ParameterList","parameters":[],"src":"17391:2:127"},"returnParameters":{"id":74206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74210,"src":"17415:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":74204,"nodeType":"UserDefinedTypeName","pathNode":{"id":74203,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:127","17430:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"17415:26:127"},"referencedDeclaration":73031,"src":"17415:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74221,"nodeType":"FunctionDefinition","src":"17594:226:127","nodes":[],"body":{"id":74220,"nodeType":"Block","src":"17672:148:127","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74217,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73132,"src":"17737:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74219,"nodeType":"RevertStatement","src":"17730:23:127"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:127","parameters":{"id":74215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74221,"src":"17619:39:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74212,"nodeType":"UserDefinedTypeName","pathNode":{"id":74211,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:127","17634:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"17619:30:127"},"referencedDeclaration":73081,"src":"17619:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74213,"nodeType":"ArrayTypeName","src":"17619:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:127"},"returnParameters":{"id":74216,"nodeType":"ParameterList","parameters":[],"src":"17672:0:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74277,"nodeType":"FunctionDefinition","src":"17966:551:127","nodes":[],"body":{"id":74276,"nodeType":"Block","src":"18040:477:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74230,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18070:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74229,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73497,"src":"18050:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74232,"nodeType":"ExpressionStatement","src":"18050:28:127"},{"assignments":[74234],"declarations":[{"constant":false,"id":74234,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:127","nodeType":"VariableDeclaration","scope":74276,"src":"18134:28:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74233,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74243,"initialValue":{"arguments":[{"id":74237,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18211:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74240,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74238,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:127","typeDescriptions":{}}},"id":74241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74235,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"18165:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:127","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76406,"src":"18165:45:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:127"},{"condition":{"id":74245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:127","subExpression":{"id":74244,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74234,"src":"18249:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74250,"nodeType":"IfStatement","src":"18244:78:127","trueBody":{"id":74249,"nodeType":"Block","src":"18274:48:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74246,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"18295:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74248,"nodeType":"RevertStatement","src":"18288:23:127"}]}},{"assignments":[74256],"declarations":[{"constant":false,"id":74256,"mutability":"mutable","name":"pv","nameLocation":"18371:2:127","nodeType":"VariableDeclaration","scope":74276,"src":"18331:42:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74254,"nodeType":"UserDefinedTypeName","pathNode":{"id":74253,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:127","18346:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"18331:30:127"},"referencedDeclaration":73081,"src":"18331:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74255,"nodeType":"ArrayTypeName","src":"18331:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74265,"initialValue":{"arguments":[{"id":74259,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"18387:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74260,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"18395:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:127","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":73081,"src":"18395:30:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$73081_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:127","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:127","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:127","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:127"},{"expression":{"arguments":[{"id":74267,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18464:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74268,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"18473:2:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74266,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74967,"src":"18439:24:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74270,"nodeType":"ExpressionStatement","src":"18439:37:127"},{"expression":{"arguments":[{"id":74272,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18498:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74273,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"18507:2:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74271,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75254,"src":"18486:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74275,"nodeType":"ExpressionStatement","src":"18486:24:127"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:127","overrides":{"id":74227,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:127"},"parameters":{"id":74226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74223,"mutability":"mutable","name":"_data","nameLocation":"17998:5:127","nodeType":"VariableDeclaration","scope":74277,"src":"17985:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74222,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74225,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:127","nodeType":"VariableDeclaration","scope":74277,"src":"18005:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74224,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:127"},"returnParameters":{"id":74228,"nodeType":"ParameterList","parameters":[],"src":"18040:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74433,"nodeType":"FunctionDefinition","src":"18773:1756:127","nodes":[],"body":{"id":74432,"nodeType":"Block","src":"18859:1670:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74288,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"18952:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:127","memberName":"length","nodeType":"MemberAccess","src":"18952:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74296,"nodeType":"IfStatement","src":"18948:76:127","trueBody":{"id":74295,"nodeType":"Block","src":"18971:53:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74292,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73164,"src":"18992:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74294,"nodeType":"RevertStatement","src":"18985:28:127"}]}},{"assignments":[74298],"declarations":[{"constant":false,"id":74298,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:127","nodeType":"VariableDeclaration","scope":74432,"src":"19034:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74297,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74306,"initialValue":{"arguments":[{"id":74301,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"19066:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74302,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:127","typeDescriptions":{}}}],"id":74304,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:127","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74307,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19098:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74314,"nodeType":"IfStatement","src":"19094:77:127","trueBody":{"id":74313,"nodeType":"Block","src":"19115:56:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74310,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73166,"src":"19136:22:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74312,"nodeType":"RevertStatement","src":"19129:31:127"}]}},{"assignments":[74319],"declarations":[{"constant":false,"id":74319,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:127","nodeType":"VariableDeclaration","scope":74432,"src":"19180:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74318,"nodeType":"UserDefinedTypeName","pathNode":{"id":74317,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:127","19195:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"19180:23:127"},"referencedDeclaration":73076,"src":"19180:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74323,"initialValue":{"baseExpression":{"id":74320,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"19223:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74322,"indexExpression":{"id":74321,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19233:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":74328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74324,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"19259:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74325,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"19275:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:127","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":73026,"src":"19275:27:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$73026_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:127","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":73024,"src":"19275:35:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74431,"nodeType":"IfStatement","src":"19255:1208:127","trueBody":{"id":74430,"nodeType":"Block","src":"19312:1151:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74329,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19330:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"19330:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74331,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19353:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74338,"nodeType":"IfStatement","src":"19326:108:127","trueBody":{"id":74337,"nodeType":"Block","src":"19365:69:127","statements":[{"errorCall":{"arguments":[{"id":74334,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19408:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74333,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"19390:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74336,"nodeType":"RevertStatement","src":"19383:36:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74339,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19452:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19452:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74341,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74351,"nodeType":"IfStatement","src":"19448:152:127","trueBody":{"id":74350,"nodeType":"Block","src":"19491:109:127","statements":[{"errorCall":{"arguments":[{"id":74344,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19536:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74345,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19548:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19548:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74347,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74343,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73192,"src":"19516:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74349,"nodeType":"RevertStatement","src":"19509:76:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"id":74357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74352,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19618:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"19618:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74354,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"19645:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"19645:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"19645:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74363,"nodeType":"IfStatement","src":"19614:138:127","trueBody":{"id":74362,"nodeType":"Block","src":"19683:69:127","statements":[{"errorCall":{"arguments":[{"id":74359,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19726:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74358,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73170,"src":"19708:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74361,"nodeType":"RevertStatement","src":"19701:36:127"}]}},{"assignments":[74365],"declarations":[{"constant":false,"id":74365,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:127","nodeType":"VariableDeclaration","scope":74430,"src":"19766:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74364,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74369,"initialValue":{"arguments":[{"id":74367,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19816:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74366,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75677,"src":"19791:24:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:127"},{"assignments":[74371],"declarations":[{"constant":false,"id":74371,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:127","nodeType":"VariableDeclaration","scope":74430,"src":"19841:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74370,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74376,"initialValue":{"arguments":[{"expression":{"id":74373,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19880:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19880:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74372,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"19861:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74377,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74365,"src":"19924:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74378,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74371,"src":"19941:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74380,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19954:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19954:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74389,"nodeType":"IfStatement","src":"19920:137:127","trueBody":{"id":74388,"nodeType":"Block","src":"19984:73:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74385,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73182,"src":"20009:31:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74387,"nodeType":"RevertStatement","src":"20002:40:127"}]}},{"assignments":[74394],"declarations":[{"constant":false,"id":74394,"mutability":"mutable","name":"pool","nameLocation":"20089:4:127","nodeType":"VariableDeclaration","scope":74430,"src":"20071:22:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74393,"nodeType":"UserDefinedTypeName","pathNode":{"id":74392,"name":"IAllo.Pool","nameLocations":["20071:5:127","20077:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:127"},"referencedDeclaration":2319,"src":"20071:10:127","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74399,"initialValue":{"arguments":[{"id":74397,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74395,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:127","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:127"},{"expression":{"id":74403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74400,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20145:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20145:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74404,"nodeType":"ExpressionStatement","src":"20131:38:127"},{"expression":{"arguments":[{"expression":{"id":74406,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74394,"src":"20207:4:127","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:127","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74408,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20219:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"20219:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74410,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20241:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20241:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74405,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74413,"nodeType":"ExpressionStatement","src":"20191:75:127"},{"expression":{"id":74420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74414,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20297:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"20297:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74417,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"20323:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"20323:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:127","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":73048,"src":"20323:38:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74421,"nodeType":"ExpressionStatement","src":"20297:64:127"},{"eventCall":{"arguments":[{"id":74423,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"20393:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20405:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"20405:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74426,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20427:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20427:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74422,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[73207,2858],"referencedDeclaration":73207,"src":"20381:11:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74429,"nodeType":"EmitStatement","src":"20376:76:127"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:127","overrides":{"id":74286,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:127"},"parameters":{"id":74285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74433,"src":"18794:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74278,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74279,"nodeType":"ArrayTypeName","src":"18794:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74282,"mutability":"mutable","name":"_data","nameLocation":"18825:5:127","nodeType":"VariableDeclaration","scope":74433,"src":"18812:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74281,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74433,"src":"18832:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74283,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:127"},"returnParameters":{"id":74287,"nodeType":"ParameterList","parameters":[],"src":"18859:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74487,"nodeType":"FunctionDefinition","src":"20535:735:127","nodes":[],"body":{"id":74486,"nodeType":"Block","src":"20624:646:127","nodes":[],"statements":[{"assignments":[74444],"declarations":[{"constant":false,"id":74444,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:127","nodeType":"VariableDeclaration","scope":74486,"src":"20634:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74443,"nodeType":"UserDefinedTypeName","pathNode":{"id":74442,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:127","20649:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"20634:23:127"},"referencedDeclaration":73076,"src":"20634:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74448,"initialValue":{"baseExpression":{"id":74445,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"20677:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74447,"indexExpression":{"id":74446,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74435,"src":"20687:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:127"},{"assignments":[74450,74452],"declarations":[{"constant":false,"id":74450,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:127","nodeType":"VariableDeclaration","scope":74486,"src":"20784:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74449,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74452,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:127","nodeType":"VariableDeclaration","scope":74486,"src":"20808:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74451,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74458,"initialValue":{"arguments":[{"id":74454,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20877:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74455,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20887:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"20887:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74453,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"20843:33:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74459,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"20924:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74462,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74452,"src":"20947:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74472,"nodeType":"IfStatement","src":"20920:110:127","trueBody":{"id":74471,"nodeType":"Block","src":"20965:65:127","statements":[{"expression":{"id":74469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74466,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"20979:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74467,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20996:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"20996:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74470,"nodeType":"ExpressionStatement","src":"20979:40:127"}]}},{"assignments":[74474],"declarations":[{"constant":false,"id":74474,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:127","nodeType":"VariableDeclaration","scope":74486,"src":"21039:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74473,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74479,"initialValue":{"arguments":[{"expression":{"id":74476,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"21078:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"21078:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74475,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"21059:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:127"},{"expression":{"id":74484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74480,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"21220:13:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74481,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"21236:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74482,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74474,"src":"21254:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74485,"nodeType":"ExpressionStatement","src":"21220:43:127"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:127","parameters":{"id":74436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74435,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:127","nodeType":"VariableDeclaration","scope":74487,"src":"20563:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74434,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:127"},"returnParameters":{"id":74439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74438,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:127","nodeType":"VariableDeclaration","scope":74487,"src":"20604:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74437,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74509,"nodeType":"FunctionDefinition","src":"21560:220:127","nodes":[],"body":{"id":74508,"nodeType":"Block","src":"21651:129:127","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74496,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74489,"src":"21711:12:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:127","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":74498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74497,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:127","typeDescriptions":{}}},"id":74500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74504,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:127","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:127","trueExpression":{"expression":{"id":74502,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:127","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74495,"id":74507,"nodeType":"Return","src":"21704:69:127"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:127","overrides":{"id":74491,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:127"},"parameters":{"id":74490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74489,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:127","nodeType":"VariableDeclaration","scope":74509,"src":"21589:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74488,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:127"},"returnParameters":{"id":74495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74509,"src":"21643:6:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74493,"nodeType":"UserDefinedTypeName","pathNode":{"id":74492,"name":"Status","nameLocations":["21643:6:127"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:127"},"referencedDeclaration":2815,"src":"21643:6:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74528,"nodeType":"FunctionDefinition","src":"21909:288:127","nodes":[],"body":{"id":74527,"nodeType":"Block","src":"22019:178:127","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74524,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73132,"src":"22079:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74526,"nodeType":"RevertStatement","src":"22072:23:127"}]},"baseFunctions":[3687],"documentation":{"id":74510,"nodeType":"StructuredDocumentation","src":"21786:118:127","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:127","overrides":{"id":74518,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:127"},"parameters":{"id":74517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21929:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74511,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74512,"nodeType":"ArrayTypeName","src":"21929:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21947:14:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74514,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74515,"nodeType":"ArrayTypeName","src":"21947:7:127","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:127"},"returnParameters":{"id":74523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21995:22:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74520,"nodeType":"UserDefinedTypeName","pathNode":{"id":74519,"name":"PayoutSummary","nameLocations":["21995:13:127"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:127"},"referencedDeclaration":2820,"src":"21995:13:127","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74521,"nodeType":"ArrayTypeName","src":"21995:15:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74547,"nodeType":"FunctionDefinition","src":"22203:264:127","nodes":[],"body":{"id":74546,"nodeType":"Block","src":"22355:112:127","nodes":[],"statements":[{"expression":{"id":74539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74532,"src":"22408:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74540,"nodeType":"ExpressionStatement","src":"22408:5:127"},{"expression":{"arguments":[{"id":74542,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"22444:12:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74541,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74538,"id":74545,"nodeType":"Return","src":"22423:37:127"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:127","overrides":{"id":74534,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:127"},"parameters":{"id":74533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74530,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:127","nodeType":"VariableDeclaration","scope":74547,"src":"22223:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74529,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74532,"mutability":"mutable","name":"_data","nameLocation":"22258:5:127","nodeType":"VariableDeclaration","scope":74547,"src":"22245:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74531,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:127"},"returnParameters":{"id":74538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74547,"src":"22329:20:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74536,"nodeType":"UserDefinedTypeName","pathNode":{"id":74535,"name":"PayoutSummary","nameLocations":["22329:13:127"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:127"},"referencedDeclaration":2820,"src":"22329:13:127","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74558,"nodeType":"FunctionDefinition","src":"22473:127:127","nodes":[],"body":{"id":74557,"nodeType":"Block","src":"22550:50:127","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74554,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"22585:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74553,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"22565:19:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74556,"nodeType":"EmitStatement","src":"22560:33:127"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:127","overrides":{"id":74551,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:127"},"parameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:127","nodeType":"VariableDeclaration","scope":74558,"src":"22507:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74548,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:127"},"returnParameters":{"id":74552,"nodeType":"ParameterList","parameters":[],"src":"22550:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74577,"nodeType":"FunctionDefinition","src":"22695:191:127","nodes":[],"body":{"id":74576,"nodeType":"Block","src":"22780:106:127","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74566,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74560,"src":"22840:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:127","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":74568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74567,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:127","typeDescriptions":{}}},"id":74570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:127","trueExpression":{"hexValue":"66616c7365","id":74572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74565,"id":74575,"nodeType":"Return","src":"22833:46:127"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:127","overrides":{"id":74562,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:127"},"parameters":{"id":74561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74560,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:127","nodeType":"VariableDeclaration","scope":74577,"src":"22722:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74559,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:127"},"returnParameters":{"id":74565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74577,"src":"22774:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74563,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74587,"nodeType":"FunctionDefinition","src":"22892:86:127","nodes":[],"body":{"id":74586,"nodeType":"Block","src":"22938:40:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74583,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74579,"src":"22963:7:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74582,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74585,"nodeType":"ExpressionStatement","src":"22948:23:127"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:127","parameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"_active","nameLocation":"22920:7:127","nodeType":"VariableDeclaration","scope":74587,"src":"22915:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74578,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:127"},"returnParameters":{"id":74581,"nodeType":"ParameterList","parameters":[],"src":"22938:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74665,"nodeType":"FunctionDefinition","src":"22984:729:127","nodes":[],"body":{"id":74664,"nodeType":"Block","src":"23028:685:127","nodes":[],"statements":[{"assignments":[74596],"declarations":[{"constant":false,"id":74596,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:127","nodeType":"VariableDeclaration","scope":74664,"src":"23086:29:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74594,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74595,"nodeType":"ArrayTypeName","src":"23086:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74600,"initialValue":{"baseExpression":{"id":74597,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"23118:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74599,"indexExpression":{"id":74598,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23139:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:127"},{"body":{"id":74662,"nodeType":"Block","src":"23207:500:127","statements":[{"assignments":[74613],"declarations":[{"constant":false,"id":74613,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:127","nodeType":"VariableDeclaration","scope":74662,"src":"23221:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74612,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74617,"initialValue":{"baseExpression":{"id":74614,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"23242:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74616,"indexExpression":{"id":74615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23255:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:127"},{"assignments":[74622],"declarations":[{"constant":false,"id":74622,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:127","nodeType":"VariableDeclaration","scope":74662,"src":"23271:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74621,"nodeType":"UserDefinedTypeName","pathNode":{"id":74620,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:127","23286:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"23271:23:127"},"referencedDeclaration":73076,"src":"23271:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74626,"initialValue":{"baseExpression":{"id":74623,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"23314:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74625,"indexExpression":{"id":74624,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"23324:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:127"},{"condition":{"arguments":[{"id":74628,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"23368:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74627,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74853,"src":"23353:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74661,"nodeType":"IfStatement","src":"23349:348:127","trueBody":{"id":74660,"nodeType":"Block","src":"23381:316:127","statements":[{"assignments":[74631],"declarations":[{"constant":false,"id":74631,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:127","nodeType":"VariableDeclaration","scope":74660,"src":"23399:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74630,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74636,"initialValue":{"baseExpression":{"expression":{"id":74632,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23422:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"23422:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74635,"indexExpression":{"id":74634,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23449:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:127"},{"expression":{"id":74643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74637,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23475:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"23475:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74641,"indexExpression":{"id":74639,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23502:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74644,"nodeType":"ExpressionStatement","src":"23475:39:127"},{"expression":{"id":74649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23532:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"23532:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74648,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23557:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74650,"nodeType":"ExpressionStatement","src":"23532:37:127"},{"expression":{"id":74653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74651,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"23587:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74652,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23602:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74654,"nodeType":"ExpressionStatement","src":"23587:27:127"},{"expression":{"arguments":[{"id":74656,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23659:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74657,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23669:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74655,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"23632:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74659,"nodeType":"ExpressionStatement","src":"23632:50:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23177:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74606,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"23181:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:127","memberName":"length","nodeType":"MemberAccess","src":"23181:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74663,"initializationExpression":{"assignments":[74602],"declarations":[{"constant":false,"id":74602,"mutability":"mutable","name":"i","nameLocation":"23170:1:127","nodeType":"VariableDeclaration","scope":74663,"src":"23162:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74601,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74604,"initialValue":{"hexValue":"30","id":74603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:127"},"loopExpression":{"expression":{"id":74610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:127","subExpression":{"id":74609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23202:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74611,"nodeType":"ExpressionStatement","src":"23202:3:127"},"nodeType":"ForStatement","src":"23157:550:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:127","parameters":{"id":74590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74589,"mutability":"mutable","name":"_member","nameLocation":"23010:7:127","nodeType":"VariableDeclaration","scope":74665,"src":"23002:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74588,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:127"},"returnParameters":{"id":74591,"nodeType":"ParameterList","parameters":[],"src":"23028:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74739,"nodeType":"FunctionDefinition","src":"24275:1038:127","nodes":[],"body":{"id":74738,"nodeType":"Block","src":"24744:569:127","nodes":[],"statements":[{"assignments":[74696],"declarations":[{"constant":false,"id":74696,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:127","nodeType":"VariableDeclaration","scope":74738,"src":"24754:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74695,"nodeType":"UserDefinedTypeName","pathNode":{"id":74694,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:127","24769:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"24754:23:127"},"referencedDeclaration":73076,"src":"24754:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74700,"initialValue":{"baseExpression":{"id":74697,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"24797:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74699,"indexExpression":{"id":74698,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74668,"src":"24807:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:127"},{"expression":{"id":74712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74701,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74688,"src":"24830:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74702,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24842:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"24842:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74708,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24897:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"24897:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74707,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"24878:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:127","trueExpression":{"hexValue":"30","id":74706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74713,"nodeType":"ExpressionStatement","src":"24830:92:127"},{"expression":{"components":[{"expression":{"id":74714,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24953:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"24953:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74716,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24985:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"24985:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74718,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25019:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73063,"src":"25019:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74720,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25056:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"25056:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74722,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25094:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"25094:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74724,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25129:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"25129:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74726,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25166:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"25166:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74728,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25198:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"25198:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74730,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74688,"src":"25235:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74731,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25258:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"25258:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74735,"indexExpression":{"expression":{"id":74733,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:127","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:127","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$73049_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74691,"id":74737,"nodeType":"Return","src":"24932:374:127"}]},"documentation":{"id":74666,"nodeType":"StructuredDocumentation","src":"23719:551:127","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:127","parameters":{"id":74669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74668,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:127","nodeType":"VariableDeclaration","scope":74739,"src":"24296:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74667,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:127"},"returnParameters":{"id":74691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74671,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24377:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74670,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74673,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:127","nodeType":"VariableDeclaration","scope":74739,"src":"24408:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74672,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74675,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24441:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74674,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74677,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:127","nodeType":"VariableDeclaration","scope":74739,"src":"24477:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74676,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74679,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:127","nodeType":"VariableDeclaration","scope":74739,"src":"24514:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74678,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74682,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24548:44:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74681,"nodeType":"UserDefinedTypeName","pathNode":{"id":74680,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:127","24563:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73049,"src":"24548:29:127"},"referencedDeclaration":73049,"src":"24548:29:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74684,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24606:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74683,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74686,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24637:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74685,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74688,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24673:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74687,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74690,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:127","nodeType":"VariableDeclaration","scope":74739,"src":"24704:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74689,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74760,"nodeType":"FunctionDefinition","src":"25319:198:127","nodes":[],"body":{"id":74759,"nodeType":"Block","src":"25401:116:127","nodes":[],"statements":[{"assignments":[74751],"declarations":[{"constant":false,"id":74751,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:127","nodeType":"VariableDeclaration","scope":74759,"src":"25411:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74750,"nodeType":"UserDefinedTypeName","pathNode":{"id":74749,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:127","25426:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"25411:23:127"},"referencedDeclaration":73076,"src":"25411:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74755,"initialValue":{"baseExpression":{"id":74752,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"25454:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74754,"indexExpression":{"id":74753,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74741,"src":"25464:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:127"},{"expression":{"expression":{"id":74756,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"25493:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73075,"src":"25493:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74746,"id":74758,"nodeType":"Return","src":"25486:24:127"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:127","parameters":{"id":74742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74741,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:127","nodeType":"VariableDeclaration","scope":74760,"src":"25340:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74740,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:127"},"returnParameters":{"id":74746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74760,"src":"25384:15:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74744,"nodeType":"UserDefinedTypeName","pathNode":{"id":74743,"name":"Metadata","nameLocations":["25384:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:127"},"referencedDeclaration":3098,"src":"25384:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74776,"nodeType":"FunctionDefinition","src":"25718:176:127","nodes":[],"body":{"id":74775,"nodeType":"Block","src":"25818:76:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74771,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"25867:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74772,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"25880:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74770,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74818,"src":"25835:31:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74769,"id":74774,"nodeType":"Return","src":"25828:59:127"}]},"documentation":{"id":74761,"nodeType":"StructuredDocumentation","src":"25523:190:127","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:127","parameters":{"id":74766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74763,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:127","nodeType":"VariableDeclaration","scope":74776,"src":"25749:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74762,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74765,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:127","nodeType":"VariableDeclaration","scope":74776,"src":"25770:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74764,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:127"},"returnParameters":{"id":74769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74776,"src":"25809:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74767,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74789,"nodeType":"FunctionDefinition","src":"25900:145:127","nodes":[],"body":{"id":74788,"nodeType":"Block","src":"25986:59:127","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74783,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26003:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74785,"indexExpression":{"id":74784,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74778,"src":"26013:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"26003:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74782,"id":74787,"nodeType":"Return","src":"25996:42:127"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:127","parameters":{"id":74779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74778,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:127","nodeType":"VariableDeclaration","scope":74789,"src":"25933:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74777,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:127"},"returnParameters":{"id":74782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74789,"src":"25977:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74780,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74801,"nodeType":"FunctionDefinition","src":"26114:127:127","nodes":[],"body":{"id":74800,"nodeType":"Block","src":"26191:50:127","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74796,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73325,"src":"26208:18:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74798,"indexExpression":{"id":74797,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"26227:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74795,"id":74799,"nodeType":"Return","src":"26201:33:127"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:127","parameters":{"id":74792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74791,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:127","nodeType":"VariableDeclaration","scope":74801,"src":"26145:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74790,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:127"},"returnParameters":{"id":74795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74801,"src":"26182:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74793,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74818,"nodeType":"FunctionDefinition","src":"26247:182:127","nodes":[],"body":{"id":74817,"nodeType":"Block","src":"26357:72:127","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74810,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26374:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74812,"indexExpression":{"id":74811,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"26384:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"26374:40:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74815,"indexExpression":{"id":74814,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74805,"src":"26415:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74809,"id":74816,"nodeType":"Return","src":"26367:55:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:127","parameters":{"id":74806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74803,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:127","nodeType":"VariableDeclaration","scope":74818,"src":"26288:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74802,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74805,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:127","nodeType":"VariableDeclaration","scope":74818,"src":"26309:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74804,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:127"},"returnParameters":{"id":74809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74818,"src":"26348:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74807,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74828,"nodeType":"FunctionDefinition","src":"26435:145:127","nodes":[],"body":{"id":74827,"nodeType":"Block","src":"26499:81:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74823,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"26516:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:127","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77710,"src":"26516:38:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74822,"id":74826,"nodeType":"Return","src":"26509:47:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:127","parameters":{"id":74819,"nodeType":"ParameterList","parameters":[],"src":"26464:2:127"},"returnParameters":{"id":74822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74828,"src":"26490:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74820,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74853,"nodeType":"FunctionDefinition","src":"26586:185:127","nodes":[],"body":{"id":74852,"nodeType":"Block","src":"26660:111:127","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74835,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26677:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74837,"indexExpression":{"id":74836,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74830,"src":"26687:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"26677:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74841,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26718:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74843,"indexExpression":{"id":74842,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74830,"src":"26728:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"26718:32:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:127","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":74846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74845,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:127","typeDescriptions":{}}},"id":74848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74834,"id":74851,"nodeType":"Return","src":"26670:94:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:127","parameters":{"id":74831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74830,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:127","nodeType":"VariableDeclaration","scope":74853,"src":"26610:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74829,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:127"},"returnParameters":{"id":74834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74853,"src":"26654:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74832,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74871,"nodeType":"FunctionDefinition","src":"26777:174:127","nodes":[],"body":{"id":74870,"nodeType":"Block","src":"26872:79:127","nodes":[],"statements":[{"expression":{"id":74868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74860,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74858,"src":"26882:14:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74861,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"26899:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74862,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74864,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"26924:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74865,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"26943:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74869,"nodeType":"ExpressionStatement","src":"26882:62:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:127","parameters":{"id":74856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74855,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:127","nodeType":"VariableDeclaration","scope":74871,"src":"26802:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74854,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:127"},"returnParameters":{"id":74859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74858,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:127","nodeType":"VariableDeclaration","scope":74871,"src":"26851:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74857,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74967,"nodeType":"FunctionDefinition","src":"26957:1548:127","nodes":[],"body":{"id":74966,"nodeType":"Block","src":"27087:1418:127","nodes":[],"statements":[{"assignments":[74881],"declarations":[{"constant":false,"id":74881,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:127","nodeType":"VariableDeclaration","scope":74966,"src":"27097:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74880,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74883,"initialValue":{"hexValue":"30","id":74882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:127"},{"body":{"id":74928,"nodeType":"Block","src":"27187:576:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74895,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27260:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74897,"indexExpression":{"id":74896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27277:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"27260:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74903,"nodeType":"IfStatement","src":"27256:187:127","trueBody":{"id":74902,"nodeType":"Block","src":"27297:146:127","statements":[{"id":74901,"nodeType":"Continue","src":"27420:8:127"}]}},{"assignments":[74905],"declarations":[{"constant":false,"id":74905,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:127","nodeType":"VariableDeclaration","scope":74928,"src":"27456:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74904,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74910,"initialValue":{"expression":{"baseExpression":{"id":74906,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27477:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74908,"indexExpression":{"id":74907,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27494:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"27477:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:127"},{"condition":{"id":74914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:127","subExpression":{"arguments":[{"id":74912,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"27541:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74911,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74853,"src":"27526:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74920,"nodeType":"IfStatement","src":"27521:167:127","trueBody":{"id":74919,"nodeType":"Block","src":"27554:134:127","statements":[{"errorCall":{"arguments":[{"id":74916,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"27597:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74915,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"27579:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74918,"nodeType":"RevertStatement","src":"27572:36:127"}]}},{"expression":{"id":74926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74921,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"27701:15:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74922,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27720:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74924,"indexExpression":{"id":74923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27737:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:127","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":73080,"src":"27720:32:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74927,"nodeType":"ExpressionStatement","src":"27701:51:127"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27153:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74889,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27157:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:127","memberName":"length","nodeType":"MemberAccess","src":"27157:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74929,"initializationExpression":{"assignments":[74885],"declarations":[{"constant":false,"id":74885,"mutability":"mutable","name":"i","nameLocation":"27146:1:127","nodeType":"VariableDeclaration","scope":74929,"src":"27138:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74884,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74887,"initialValue":{"hexValue":"30","id":74886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:127"},"loopExpression":{"expression":{"id":74893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:127","subExpression":{"id":74892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27182:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74894,"nodeType":"ExpressionStatement","src":"27182:3:127"},"nodeType":"ForStatement","src":"27133:630:127"},{"assignments":[74931],"declarations":[{"constant":false,"id":74931,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:127","nodeType":"VariableDeclaration","scope":74966,"src":"27859:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74930,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74938,"initialValue":{"arguments":[{"arguments":[{"id":74934,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"27925:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74933,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74801,"src":"27903:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74936,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"27935:15:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74932,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"27891:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:127"},{"assignments":[74940],"declarations":[{"constant":false,"id":74940,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:127","nodeType":"VariableDeclaration","scope":74966,"src":"28033:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74939,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74949,"initialValue":{"arguments":[{"id":74943,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"28105:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74946,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74944,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:127","typeDescriptions":{}}},"id":74947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74941,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"28062:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"28062:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74950,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28294:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74951,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"28318:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74959,"nodeType":"IfStatement","src":"28290:147:127","trueBody":{"id":74958,"nodeType":"Block","src":"28338:99:127","statements":[{"errorCall":{"arguments":[{"id":74954,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28384:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74955,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"28407:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74953,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73162,"src":"28359:24:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74957,"nodeType":"RevertStatement","src":"28352:74:127"}]}},{"expression":{"id":74964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74960,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73325,"src":"28447:18:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74962,"indexExpression":{"id":74961,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"28466:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74963,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28477:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74965,"nodeType":"ExpressionStatement","src":"28447:51:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:127","parameters":{"id":74878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74873,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:127","nodeType":"VariableDeclaration","scope":74967,"src":"26991:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74872,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74877,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:127","nodeType":"VariableDeclaration","scope":74967,"src":"27008:56:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74875,"nodeType":"UserDefinedTypeName","pathNode":{"id":74874,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:127","27023:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"27008:30:127"},"referencedDeclaration":73081,"src":"27008:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74876,"nodeType":"ArrayTypeName","src":"27008:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:127"},"returnParameters":{"id":74879,"nodeType":"ParameterList","parameters":[],"src":"27087:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75254,"nodeType":"FunctionDefinition","src":"28511:3479:127","nodes":[],"body":{"id":75253,"nodeType":"Block","src":"28616:3374:127","nodes":[],"statements":[{"assignments":[74980],"declarations":[{"constant":false,"id":74980,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:127","nodeType":"VariableDeclaration","scope":75253,"src":"28626:29:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74978,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74979,"nodeType":"ArrayTypeName","src":"28626:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74981,"nodeType":"VariableDeclarationStatement","src":"28626:29:127"},{"body":{"id":75251,"nodeType":"Block","src":"28719:3265:127","statements":[{"assignments":[74994],"declarations":[{"constant":false,"id":74994,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:127","nodeType":"VariableDeclaration","scope":75251,"src":"28733:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74993,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74999,"initialValue":{"expression":{"baseExpression":{"id":74995,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"28754:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74997,"indexExpression":{"id":74996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28771:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"28754:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75000,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28857:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:127","memberName":"length","nodeType":"MemberAccess","src":"28857:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75102,"nodeType":"Block","src":"29009:764:127","statements":[{"assignments":[75020],"declarations":[{"constant":false,"id":75020,"mutability":"mutable","name":"exist","nameLocation":"29032:5:127","nodeType":"VariableDeclaration","scope":75102,"src":"29027:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75019,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75022,"initialValue":{"hexValue":"66616c7365","id":75021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:127"},{"body":{"id":75050,"nodeType":"Block","src":"29113:268:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75034,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29164:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75036,"indexExpression":{"id":75035,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29177:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75037,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29183:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75049,"nodeType":"IfStatement","src":"29160:203:127","trueBody":{"id":75048,"nodeType":"Block","src":"29195:168:127","statements":[{"expression":{"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75039,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75020,"src":"29221:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":75040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75042,"nodeType":"ExpressionStatement","src":"29221:12:127"},{"errorCall":{"arguments":[{"id":75044,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29292:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75045,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29304:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75043,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73180,"src":"29266:25:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":75046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75047,"nodeType":"RevertStatement","src":"29259:47:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75027,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29083:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75028,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29087:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:127","memberName":"length","nodeType":"MemberAccess","src":"29087:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75051,"initializationExpression":{"assignments":[75024],"declarations":[{"constant":false,"id":75024,"mutability":"mutable","name":"j","nameLocation":"29076:1:127","nodeType":"VariableDeclaration","scope":75051,"src":"29068:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75023,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75026,"initialValue":{"hexValue":"30","id":75025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:127"},"loopExpression":{"expression":{"id":75032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:127","subExpression":{"id":75031,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29108:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75033,"nodeType":"ExpressionStatement","src":"29108:3:127"},"nodeType":"ForStatement","src":"29063:318:127"},{"condition":{"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:127","subExpression":{"id":75052,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75020,"src":"29403:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75101,"nodeType":"IfStatement","src":"29398:361:127","trueBody":{"id":75100,"nodeType":"Block","src":"29410:349:127","statements":[{"assignments":[75058],"declarations":[{"constant":false,"id":75058,"mutability":"mutable","name":"temp","nameLocation":"29449:4:127","nodeType":"VariableDeclaration","scope":75100,"src":"29432:21:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75056,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75057,"nodeType":"ArrayTypeName","src":"29432:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":75067,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75062,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29470:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:127","memberName":"length","nodeType":"MemberAccess","src":"29470:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:127","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75059,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75060,"nodeType":"ArrayTypeName","src":"29460:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:127"},{"body":{"id":75087,"nodeType":"Block","src":"29566:74:127","statements":[{"expression":{"id":75085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75079,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29592:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75081,"indexExpression":{"id":75080,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29597:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":75082,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29602:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75084,"indexExpression":{"id":75083,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29615:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75086,"nodeType":"ExpressionStatement","src":"29592:25:127"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75072,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29536:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75073,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29540:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:127","memberName":"length","nodeType":"MemberAccess","src":"29540:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75088,"initializationExpression":{"assignments":[75069],"declarations":[{"constant":false,"id":75069,"mutability":"mutable","name":"j","nameLocation":"29529:1:127","nodeType":"VariableDeclaration","scope":75088,"src":"29521:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75068,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75071,"initialValue":{"hexValue":"30","id":75070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:127"},"loopExpression":{"expression":{"id":75077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:127","subExpression":{"id":75076,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29561:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75078,"nodeType":"ExpressionStatement","src":"29561:3:127"},"nodeType":"ForStatement","src":"29516:124:127"},{"expression":{"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75089,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29661:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75092,"indexExpression":{"expression":{"id":75090,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29666:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:127","memberName":"length","nodeType":"MemberAccess","src":"29666:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75093,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29689:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75095,"nodeType":"ExpressionStatement","src":"29661:38:127"},{"expression":{"id":75098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75096,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29721:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75097,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29736:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75099,"nodeType":"ExpressionStatement","src":"29721:19:127"}]}}]},"id":75103,"nodeType":"IfStatement","src":"28853:920:127","trueBody":{"id":75018,"nodeType":"Block","src":"28883:120:127","statements":[{"expression":{"id":75010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75004,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28901:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":75008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":75007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:127","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75005,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75006,"nodeType":"ArrayTypeName","src":"28920:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75011,"nodeType":"ExpressionStatement","src":"28901:31:127"},{"expression":{"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75012,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28950:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75014,"indexExpression":{"hexValue":"30","id":75013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75015,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"28968:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75017,"nodeType":"ExpressionStatement","src":"28950:28:127"}]}},{"assignments":[75105],"declarations":[{"constant":false,"id":75105,"mutability":"mutable","name":"delta","nameLocation":"29793:5:127","nodeType":"VariableDeclaration","scope":75251,"src":"29786:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75104,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75110,"initialValue":{"expression":{"baseExpression":{"id":75106,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"29801:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":75108,"indexExpression":{"id":75107,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"29818:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":75109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:127","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":73080,"src":"29801:32:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:127"},{"assignments":[75115],"declarations":[{"constant":false,"id":75115,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:127","nodeType":"VariableDeclaration","scope":75251,"src":"29848:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75114,"nodeType":"UserDefinedTypeName","pathNode":{"id":75113,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:127","29863:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"29848:23:127"},"referencedDeclaration":73076,"src":"29848:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75119,"initialValue":{"baseExpression":{"id":75116,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"29891:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75118,"indexExpression":{"id":75117,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29901:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:127"},{"assignments":[75121],"declarations":[{"constant":false,"id":75121,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:127","nodeType":"VariableDeclaration","scope":75251,"src":"30014:28:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75120,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75126,"initialValue":{"baseExpression":{"expression":{"id":75122,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30045:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"30045:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":75125,"indexExpression":{"id":75124,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30072:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:127"},{"assignments":[75128],"declarations":[{"constant":false,"id":75128,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:127","nodeType":"VariableDeclaration","scope":75251,"src":"30245:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75127,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75133,"initialValue":{"arguments":[{"id":75130,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"30280:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75131,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75105,"src":"30302:5:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75129,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"30268:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:127"},{"expression":{"id":75140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75134,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30443:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"30443:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":75138,"indexExpression":{"id":75136,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30470:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75139,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"30481:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75141,"nodeType":"ExpressionStatement","src":"30443:50:127"},{"assignments":[75143],"declarations":[{"constant":false,"id":75143,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:127","nodeType":"VariableDeclaration","scope":75251,"src":"30727:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75142,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75145,"initialValue":{"hexValue":"66616c7365","id":75144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:127"},{"body":{"id":75174,"nodeType":"Block","src":"30832:179:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":75159,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"30854:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75161,"indexExpression":{"id":75160,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30875:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75163,"indexExpression":{"id":75162,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30884:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75164,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30890:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"30890:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75173,"nodeType":"IfStatement","src":"30850:147:127","trueBody":{"id":75172,"nodeType":"Block","src":"30911:86:127","statements":[{"expression":{"id":75169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75167,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75143,"src":"30933:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":75168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75170,"nodeType":"ExpressionStatement","src":"30933:18:127"},{"id":75171,"nodeType":"Break","src":"30973:5:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30785:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":75151,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"30789:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75153,"indexExpression":{"id":75152,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30810:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:127","memberName":"length","nodeType":"MemberAccess","src":"30789:36:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75175,"initializationExpression":{"assignments":[75147],"declarations":[{"constant":false,"id":75147,"mutability":"mutable","name":"k","nameLocation":"30778:1:127","nodeType":"VariableDeclaration","scope":75175,"src":"30770:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75146,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75149,"initialValue":{"hexValue":"30","id":75148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:127"},"loopExpression":{"expression":{"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:127","subExpression":{"id":75156,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30827:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75158,"nodeType":"ExpressionStatement","src":"30827:3:127"},"nodeType":"ForStatement","src":"30765:246:127"},{"condition":{"id":75177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:127","subExpression":{"id":75176,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75143,"src":"31029:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75187,"nodeType":"IfStatement","src":"31024:106:127","trueBody":{"id":75186,"nodeType":"Block","src":"31042:88:127","statements":[{"expression":{"arguments":[{"expression":{"id":75182,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31095:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"31095:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":75178,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"31060:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75180,"indexExpression":{"id":75179,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"31081:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:127","memberName":"push","nodeType":"MemberAccess","src":"31060:34:127","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75185,"nodeType":"ExpressionStatement","src":"31060:55:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75188,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31285:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75189,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31309:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75220,"nodeType":"Block","src":"31490:161:127","statements":[{"expression":{"id":75210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75206,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"31508:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75207,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31523:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75208,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31546:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75211,"nodeType":"ExpressionStatement","src":"31508:50:127"},{"expression":{"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75212,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31576:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31576:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75215,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31601:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75216,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31624:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75219,"nodeType":"ExpressionStatement","src":"31576:60:127"}]},"id":75221,"nodeType":"IfStatement","src":"31281:370:127","trueBody":{"id":75205,"nodeType":"Block","src":"31323:161:127","statements":[{"expression":{"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75191,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"31341:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75192,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31356:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75193,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31371:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75196,"nodeType":"ExpressionStatement","src":"31341:50:127"},{"expression":{"id":75203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31409:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31409:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75200,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31434:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75201,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31449:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75204,"nodeType":"ExpressionStatement","src":"31409:60:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75222,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31668:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"31668:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75249,"nodeType":"Block","src":"31765:209:127","statements":[{"expression":{"arguments":[{"id":75235,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31810:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75236,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31820:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75234,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"31783:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75238,"nodeType":"ExpressionStatement","src":"31783:58:127"},{"eventCall":{"arguments":[{"id":75240,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"31877:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75241,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"31886:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75242,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31898:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75243,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31912:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31912:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75245,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31935:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"31935:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75239,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73245,"src":"31864:12:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75248,"nodeType":"EmitStatement","src":"31859:100:127"}]},"id":75250,"nodeType":"IfStatement","src":"31664:310:127","trueBody":{"id":75233,"nodeType":"Block","src":"31693:66:127","statements":[{"expression":{"id":75231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31711:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"31711:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75229,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:127","memberName":"number","nodeType":"MemberAccess","src":"31732:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75232,"nodeType":"ExpressionStatement","src":"31711:33:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28685:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74987,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"28689:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:127","memberName":"length","nodeType":"MemberAccess","src":"28689:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75252,"initializationExpression":{"assignments":[74983],"declarations":[{"constant":false,"id":74983,"mutability":"mutable","name":"i","nameLocation":"28678:1:127","nodeType":"VariableDeclaration","scope":75252,"src":"28670:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74982,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74985,"initialValue":{"hexValue":"30","id":74984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:127"},"loopExpression":{"expression":{"id":74991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:127","subExpression":{"id":74990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28714:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74992,"nodeType":"ExpressionStatement","src":"28714:3:127"},"nodeType":"ForStatement","src":"28665:3319:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:127","parameters":{"id":74974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74969,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:127","nodeType":"VariableDeclaration","scope":75254,"src":"28532:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74968,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74973,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:127","nodeType":"VariableDeclaration","scope":75254,"src":"28549:56:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74971,"nodeType":"UserDefinedTypeName","pathNode":{"id":74970,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:127","28564:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"28549:30:127"},"referencedDeclaration":73081,"src":"28549:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74972,"nodeType":"ArrayTypeName","src":"28549:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:127"},"returnParameters":{"id":74975,"nodeType":"ParameterList","parameters":[],"src":"28616:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75289,"nodeType":"FunctionDefinition","src":"31996:276:127","nodes":[],"body":{"id":75288,"nodeType":"Block","src":"32082:190:127","nodes":[],"statements":[{"assignments":[75264],"declarations":[{"constant":false,"id":75264,"mutability":"mutable","name":"result","nameLocation":"32099:6:127","nodeType":"VariableDeclaration","scope":75288,"src":"32092:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75263,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75271,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75267,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75256,"src":"32115:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75265,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:127","typeDescriptions":{}}},"id":75268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75269,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75258,"src":"32127:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:127"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75272,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32148:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75282,"nodeType":"IfStatement","src":"32144:90:127","trueBody":{"id":75281,"nodeType":"Block","src":"32160:74:127","statements":[{"errorCall":{"arguments":[{"id":75276,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75256,"src":"32198:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75277,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75258,"src":"32208:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75278,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32216:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75275,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73152,"src":"32181:16:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75280,"nodeType":"RevertStatement","src":"32174:49:127"}]}},{"expression":{"arguments":[{"id":75285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32258:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75283,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:127","typeDescriptions":{}}},"id":75286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75262,"id":75287,"nodeType":"Return","src":"32243:22:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:127","parameters":{"id":75259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75256,"mutability":"mutable","name":"_support","nameLocation":"32025:8:127","nodeType":"VariableDeclaration","scope":75289,"src":"32017:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75255,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75258,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:127","nodeType":"VariableDeclaration","scope":75289,"src":"32035:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75257,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:127"},"returnParameters":{"id":75262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75289,"src":"32073:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75260,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75345,"nodeType":"FunctionDefinition","src":"32689:1145:127","nodes":[],"body":{"id":75344,"nodeType":"Block","src":"32836:998:127","nodes":[],"statements":[{"assignments":[75302],"declarations":[{"constant":false,"id":75302,"mutability":"mutable","name":"t","nameLocation":"32854:1:127","nodeType":"VariableDeclaration","scope":75344,"src":"32846:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75301,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75304,"initialValue":{"id":75303,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"32858:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:127"},{"assignments":[75306],"declarations":[{"constant":false,"id":75306,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:127","nodeType":"VariableDeclaration","scope":75344,"src":"33184:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75305,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75316,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75308,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"33210:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75312,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33226:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75314,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75302,"src":"33229:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75307,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75533,"src":"33204:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:127"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75317,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"33727:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75318,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"33739:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75321,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75296,"src":"33754:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75322,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33767:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75324,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"33772:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75325,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"33782:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75327,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75330,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33797:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75331,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"33801:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75333,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75337,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75338,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73280,"src":"33812:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75300,"id":75343,"nodeType":"Return","src":"33717:110:127"}]},"documentation":{"id":75290,"nodeType":"StructuredDocumentation","src":"32278:406:127","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:127","parameters":{"id":75297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75292,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:127","nodeType":"VariableDeclaration","scope":75345,"src":"32718:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75291,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75294,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:127","nodeType":"VariableDeclaration","scope":75345,"src":"32739:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75293,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75296,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:127","nodeType":"VariableDeclaration","scope":75345,"src":"32758:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75295,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:127"},"returnParameters":{"id":75300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75345,"src":"32823:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75298,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75433,"nodeType":"FunctionDefinition","src":"34415:1482:127","nodes":[],"body":{"id":75432,"nodeType":"Block","src":"34510:1387:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75353,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75360,"nodeType":"IfStatement","src":"34640:66:127","trueBody":{"id":75359,"nodeType":"Block","src":"34661:45:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75356,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73130,"src":"34682:11:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75358,"nodeType":"RevertStatement","src":"34675:20:127"}]}},{"condition":{"arguments":[{"id":75362,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75348,"src":"35162:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75361,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74871,"src":"35146:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75368,"nodeType":"IfStatement","src":"35142:91:127","trueBody":{"id":75367,"nodeType":"Block","src":"35181:52:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75364,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73138,"src":"35202:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75366,"nodeType":"RevertStatement","src":"35195:27:127"}]}},{"assignments":[75370],"declarations":[{"constant":false,"id":75370,"mutability":"mutable","name":"denom","nameLocation":"35389:5:127","nodeType":"VariableDeclaration","scope":75432,"src":"35381:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75369,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75388,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75371,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"35398:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75376,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75377,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35420:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75379,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75348,"src":"35425:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75385,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:127"},{"expression":{"id":75421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75389,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35475:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75390,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"35507:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75393,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75394,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35524:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75396,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75397,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"35531:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75398,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"35539:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75406,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35556:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75409,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35562:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75410,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"35566:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75415,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75541,"src":"35576:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75422,"nodeType":"ExpressionStatement","src":"35475:145:127"},{"expression":{"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75423,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35810:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75424,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35823:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75425,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"35836:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75428,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"35871:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:127","trueExpression":{"id":75427,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35858:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75431,"nodeType":"ExpressionStatement","src":"35810:80:127"}]},"documentation":{"id":75346,"nodeType":"StructuredDocumentation","src":"33840:570:127","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:127","parameters":{"id":75349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75348,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:127","nodeType":"VariableDeclaration","scope":75433,"src":"34443:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75347,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:127"},"returnParameters":{"id":75352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75351,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:127","nodeType":"VariableDeclaration","scope":75433,"src":"34490:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75350,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75468,"nodeType":"FunctionDefinition","src":"36158:269:127","nodes":[],"body":{"id":75467,"nodeType":"Block","src":"36236:191:127","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75444,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75436,"src":"36254:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75445,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36260:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75449,"nodeType":"ExpressionStatement","src":"36246:66:127"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75451,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75438,"src":"36330:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75452,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36335:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75456,"nodeType":"ExpressionStatement","src":"36322:53:127"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75457,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75436,"src":"36394:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75458,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75438,"src":"36399:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75461,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73280,"src":"36405:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75463,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75442,"id":75466,"nodeType":"Return","src":"36385:35:127"}]},"documentation":{"id":75434,"nodeType":"StructuredDocumentation","src":"35903:250:127","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:127","parameters":{"id":75439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75436,"mutability":"mutable","name":"_a","nameLocation":"36180:2:127","nodeType":"VariableDeclaration","scope":75468,"src":"36172:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75435,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75438,"mutability":"mutable","name":"_b","nameLocation":"36192:2:127","nodeType":"VariableDeclaration","scope":75468,"src":"36184:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75437,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:127"},"returnParameters":{"id":75442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75441,"mutability":"mutable","name":"_result","nameLocation":"36227:7:127","nodeType":"VariableDeclaration","scope":75468,"src":"36219:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75440,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75533,"nodeType":"FunctionDefinition","src":"36649:447:127","nodes":[],"body":{"id":75532,"nodeType":"Block","src":"36727:369:127","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75479,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"36745:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75480,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36750:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75484,"nodeType":"ExpressionStatement","src":"36737:53:127"},{"assignments":[75486],"declarations":[{"constant":false,"id":75486,"mutability":"mutable","name":"a","nameLocation":"36808:1:127","nodeType":"VariableDeclaration","scope":75532,"src":"36800:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75485,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75488,"initialValue":{"id":75487,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"36812:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:127"},{"assignments":[75490],"declarations":[{"constant":false,"id":75490,"mutability":"mutable","name":"b","nameLocation":"36832:1:127","nodeType":"VariableDeclaration","scope":75532,"src":"36824:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75489,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75492,"initialValue":{"id":75491,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75473,"src":"36836:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:127"},{"expression":{"id":75495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75493,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"36848:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75494,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36858:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75496,"nodeType":"ExpressionStatement","src":"36848:17:127"},{"body":{"id":75530,"nodeType":"Block","src":"36889:201:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75500,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36907:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75528,"nodeType":"Block","src":"36997:83:127","statements":[{"expression":{"id":75522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75517,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"37015:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75519,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"37030:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75520,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"37039:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75518,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75468,"src":"37025:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75523,"nodeType":"ExpressionStatement","src":"37015:26:127"},{"expression":{"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"37059:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75527,"nodeType":"ExpressionStatement","src":"37059:6:127"}]},"id":75529,"nodeType":"IfStatement","src":"36903:177:127","trueBody":{"id":75516,"nodeType":"Block","src":"36919:72:127","statements":[{"expression":{"id":75510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36937:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75507,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36946:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75508,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36949:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75506,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75468,"src":"36941:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75511,"nodeType":"ExpressionStatement","src":"36937:14:127"},{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75512,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36969:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"36969:7:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75497,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36882:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75531,"nodeType":"WhileStatement","src":"36875:215:127"}]},"documentation":{"id":75469,"nodeType":"StructuredDocumentation","src":"36433:211:127","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:127","parameters":{"id":75474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75471,"mutability":"mutable","name":"_a","nameLocation":"36671:2:127","nodeType":"VariableDeclaration","scope":75533,"src":"36663:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75470,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75473,"mutability":"mutable","name":"_b","nameLocation":"36683:2:127","nodeType":"VariableDeclaration","scope":75533,"src":"36675:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75472,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:127"},"returnParameters":{"id":75477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75476,"mutability":"mutable","name":"_result","nameLocation":"36718:7:127","nodeType":"VariableDeclaration","scope":75533,"src":"36710:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75475,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75541,"nodeType":"FunctionDefinition","src":"37102:112:127","nodes":[],"body":{"id":75540,"nodeType":"Block","src":"37170:44:127","nodes":[],"statements":[{"expression":{"id":75538,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"37187:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75537,"id":75539,"nodeType":"Return","src":"37180:27:127"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:127","parameters":{"id":75534,"nodeType":"ParameterList","parameters":[],"src":"37137:2:127"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75541,"src":"37161:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75535,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75582,"nodeType":"FunctionDefinition","src":"37404:396:127","nodes":[],"body":{"id":75581,"nodeType":"Block","src":"37512:288:127","nodes":[],"statements":[{"assignments":[75551,75553],"declarations":[{"constant":false,"id":75551,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:127","nodeType":"VariableDeclaration","scope":75581,"src":"37523:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75550,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75553,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:127","nodeType":"VariableDeclaration","scope":75581,"src":"37543:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75552,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75558,"initialValue":{"arguments":[{"id":75555,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37600:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75556,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75547,"src":"37611:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75554,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"37566:33:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75559,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"37636:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75562,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"37655:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75568,"nodeType":"IfStatement","src":"37632:72:127","trueBody":{"id":75567,"nodeType":"Block","src":"37673:31:127","statements":[{"functionReturnParameters":75549,"id":75566,"nodeType":"Return","src":"37687:7:127"}]}},{"expression":{"id":75573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75569,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37713:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"37713:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75572,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"37735:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75574,"nodeType":"ExpressionStatement","src":"37713:33:127"},{"expression":{"id":75579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75575,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37756:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"37756:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75578,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"37783:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75580,"nodeType":"ExpressionStatement","src":"37756:37:127"}]},"documentation":{"id":75542,"nodeType":"StructuredDocumentation","src":"37220:179:127","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:127","parameters":{"id":75548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75545,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:127","nodeType":"VariableDeclaration","scope":75582,"src":"37440:41:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75544,"nodeType":"UserDefinedTypeName","pathNode":{"id":75543,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:127","37455:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"37440:23:127"},"referencedDeclaration":73076,"src":"37440:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75547,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:127","nodeType":"VariableDeclaration","scope":75582,"src":"37483:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75546,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:127"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[],"src":"37512:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75629,"nodeType":"FunctionDefinition","src":"37806:719:127","nodes":[],"body":{"id":75628,"nodeType":"Block","src":"38004:521:127","nodes":[],"statements":[{"expression":{"id":75597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75594,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38014:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75595,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:127","memberName":"number","nodeType":"MemberAccess","src":"38028:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75598,"nodeType":"ExpressionStatement","src":"38014:26:127"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75600,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38057:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38057:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75602,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38080:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75599,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:127","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75605,"nodeType":"ExpressionStatement","src":"38050:42:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75606,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38106:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38106:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75608,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38129:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75615,"nodeType":"IfStatement","src":"38102:173:127","trueBody":{"id":75614,"nodeType":"Block","src":"38142:133:127","statements":[{"expression":{"components":[{"hexValue":"30","id":75610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75612,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:127","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75593,"id":75613,"nodeType":"Return","src":"38222:13:127"}]}},{"expression":{"id":75626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75616,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75590,"src":"38328:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75618,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38374:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75619,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38388:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38388:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75622,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38460:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"38460:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75624,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75587,"src":"38498:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75617,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75345,"src":"38341:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75627,"nodeType":"ExpressionStatement","src":"38328:190:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:127","parameters":{"id":75588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75585,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:127","nodeType":"VariableDeclaration","scope":75629,"src":"37849:41:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75584,"nodeType":"UserDefinedTypeName","pathNode":{"id":75583,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:127","37864:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"37849:23:127"},"referencedDeclaration":73076,"src":"37849:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75587,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:127","nodeType":"VariableDeclaration","scope":75629,"src":"37892:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75586,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:127"},"returnParameters":{"id":75593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75590,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:127","nodeType":"VariableDeclaration","scope":75629,"src":"37959:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75589,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75592,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:127","nodeType":"VariableDeclaration","scope":75629,"src":"37979:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75591,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75677,"nodeType":"FunctionDefinition","src":"38531:520:127","nodes":[],"body":{"id":75676,"nodeType":"Block","src":"38610:441:127","nodes":[],"statements":[{"assignments":[75640],"declarations":[{"constant":false,"id":75640,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:127","nodeType":"VariableDeclaration","scope":75676,"src":"38620:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75639,"nodeType":"UserDefinedTypeName","pathNode":{"id":75638,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:127","38635:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"38620:23:127"},"referencedDeclaration":73076,"src":"38620:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75644,"initialValue":{"baseExpression":{"id":75641,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"38663:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75643,"indexExpression":{"id":75642,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38673:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38699:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"38699:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75647,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38722:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75654,"nodeType":"IfStatement","src":"38695:100:127","trueBody":{"id":75653,"nodeType":"Block","src":"38734:61:127","statements":[{"errorCall":{"arguments":[{"id":75650,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38773:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75649,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"38755:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75652,"nodeType":"RevertStatement","src":"38748:36:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"id":75660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75655,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38809:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"38809:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75657,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"38836:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":75658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"38836:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"38836:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75666,"nodeType":"IfStatement","src":"38805:130:127","trueBody":{"id":75665,"nodeType":"Block","src":"38874:61:127","statements":[{"errorCall":{"arguments":[{"id":75662,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38913:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75661,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73170,"src":"38895:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75664,"nodeType":"RevertStatement","src":"38888:36:127"}]}},{"expression":{"arguments":[{"id":75668,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38972:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75669,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38982:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"38982:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75667,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"38945:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75672,"nodeType":"ExpressionStatement","src":"38945:59:127"},{"expression":{"expression":{"id":75673,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"39021:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"39021:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75635,"id":75675,"nodeType":"Return","src":"39014:30:127"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:127","parameters":{"id":75632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75631,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:127","nodeType":"VariableDeclaration","scope":75677,"src":"38565:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75630,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:127"},"returnParameters":{"id":75635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75677,"src":"38601:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75633,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75696,"nodeType":"FunctionDefinition","src":"39057:124:127","nodes":[],"body":{"id":75695,"nodeType":"Block","src":"39129:52:127","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75679,"src":"39148:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75685,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"39157:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75688,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"39163:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75689,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"39167:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75691,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75683,"id":75694,"nodeType":"Return","src":"39139:35:127"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:127","parameters":{"id":75680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75679,"mutability":"mutable","name":"amount","nameLocation":"39091:6:127","nodeType":"VariableDeclaration","scope":75696,"src":"39083:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75678,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:127"},"returnParameters":{"id":75683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75696,"src":"39120:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75681,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75714,"nodeType":"FunctionDefinition","src":"39187:137:127","nodes":[],"body":{"id":75713,"nodeType":"Block","src":"39258:66:127","nodes":[],"statements":[{"expression":{"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75705,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"39268:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75706,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75698,"src":"39276:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75708,"nodeType":"ExpressionStatement","src":"39268:14:127"},{"eventCall":{"arguments":[{"id":75710,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75698,"src":"39310:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75709,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73253,"src":"39297:12:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75712,"nodeType":"EmitStatement","src":"39292:25:127"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75703,"kind":"modifierInvocation","modifierName":{"id":75700,"name":"onlyPoolManager","nameLocations":["39230:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:127"},"nodeType":"ModifierInvocation","src":"39230:27:127"}],"name":"setDecay","nameLocation":"39196:8:127","parameters":{"id":75699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75698,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:127","nodeType":"VariableDeclaration","scope":75714,"src":"39205:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75697,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:127"},"returnParameters":{"id":75704,"nodeType":"ParameterList","parameters":[],"src":"39258:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75732,"nodeType":"FunctionDefinition","src":"39330:155:127","nodes":[],"body":{"id":75731,"nodeType":"Block","src":"39407:78:127","nodes":[],"statements":[{"expression":{"id":75725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75723,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"39417:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75724,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"39428:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75726,"nodeType":"ExpressionStatement","src":"39417:20:127"},{"eventCall":{"arguments":[{"id":75728,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"39468:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75727,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73257,"src":"39452:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75730,"nodeType":"EmitStatement","src":"39447:31:127"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75721,"kind":"modifierInvocation","modifierName":{"id":75718,"name":"onlyPoolManager","nameLocations":["39379:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:127"},"nodeType":"ModifierInvocation","src":"39379:27:127"}],"name":"setMaxRatio","nameLocation":"39339:11:127","parameters":{"id":75717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75716,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:127","nodeType":"VariableDeclaration","scope":75732,"src":"39351:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75715,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:127"},"returnParameters":{"id":75722,"nodeType":"ParameterList","parameters":[],"src":"39407:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75750,"nodeType":"FunctionDefinition","src":"39491:143:127","nodes":[],"body":{"id":75749,"nodeType":"Block","src":"39564:70:127","nodes":[],"statements":[{"expression":{"id":75743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75741,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"39574:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75742,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75734,"src":"39583:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75744,"nodeType":"ExpressionStatement","src":"39574:16:127"},{"eventCall":{"arguments":[{"id":75746,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75734,"src":"39619:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75745,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73261,"src":"39605:13:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75748,"nodeType":"EmitStatement","src":"39600:27:127"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75737,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75739,"kind":"modifierInvocation","modifierName":{"id":75736,"name":"onlyPoolManager","nameLocations":["39536:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:127"},"nodeType":"ModifierInvocation","src":"39536:27:127"}],"name":"setWeight","nameLocation":"39500:9:127","parameters":{"id":75735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75734,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:127","nodeType":"VariableDeclaration","scope":75750,"src":"39510:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75733,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:127"},"returnParameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"39564:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75770,"nodeType":"FunctionDefinition","src":"39640:219:127","nodes":[],"body":{"id":75769,"nodeType":"Block","src":"39735:124:127","nodes":[],"statements":[{"expression":{"id":75763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75759,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"39745:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75761,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75752,"src":"39783:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75760,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"39765:17:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77913_$","typeString":"type(contract RegistryCommunity)"}},"id":75762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"src":"39745:57:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":75764,"nodeType":"ExpressionStatement","src":"39745:57:127"},{"eventCall":{"arguments":[{"id":75766,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75752,"src":"39833:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75765,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73265,"src":"39817:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75768,"nodeType":"EmitStatement","src":"39812:40:127"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75757,"kind":"modifierInvocation","modifierName":{"id":75754,"name":"onlyPoolManager","nameLocations":["39707:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:127"},"nodeType":"ModifierInvocation","src":"39707:27:127"}],"name":"setRegistryCommunity","nameLocation":"39649:20:127","parameters":{"id":75753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75752,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:127","nodeType":"VariableDeclaration","scope":75770,"src":"39670:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75751,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:127"},"returnParameters":{"id":75758,"nodeType":"ParameterList","parameters":[],"src":"39735:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75789,"nodeType":"FunctionDefinition","src":"39865:237:127","nodes":[],"body":{"id":75788,"nodeType":"Block","src":"39962:140:127","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75780,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"40003:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75781,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75772,"src":"40024:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75779,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73271,"src":"39977:25:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75783,"nodeType":"EmitStatement","src":"39972:72:127"},{"expression":{"id":75786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75784,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"40054:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75785,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75772,"src":"40076:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75787,"nodeType":"ExpressionStatement","src":"40054:41:127"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75777,"kind":"modifierInvocation","modifierName":{"id":75774,"name":"onlyPoolManager","nameLocations":["39934:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:127"},"nodeType":"ModifierInvocation","src":"39934:27:127"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:127","parameters":{"id":75773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75772,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:127","nodeType":"VariableDeclaration","scope":75789,"src":"39896:27:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75771,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:127"},"returnParameters":{"id":75778,"nodeType":"ParameterList","parameters":[],"src":"39962:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":73114,"name":"BaseStrategy","nameLocations":["2845:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:127"},"id":73115,"nodeType":"InheritanceSpecifier","src":"2845:12:127"},{"baseName":{"id":73116,"name":"IPointStrategy","nameLocations":["2859:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73022,"src":"2859:14:127"},"id":73117,"nodeType":"InheritanceSpecifier","src":"2859:14:127"},{"baseName":{"id":73118,"name":"ERC165","nameLocations":["2875:6:127"],"nodeType":"IdentifierPath","referencedDeclaration":58322,"src":"2875:6:127"},"id":73119,"nodeType":"InheritanceSpecifier","src":"2875:6:127"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75790,58322,58528,73022,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:127","scope":75791,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,73124,73126,73128,73130,73132,73134,73136,73138,73140,73142,73144,73152,73154,73156,73162,73164,73166,73170,73174,73180,73182,73184,73192]}],"license":"AGPL-3.0-only"},"id":127} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json b/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json index df89126d8..837372e24 100644 --- a/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json +++ b/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c63262f618c97eeeaf7fc8db03cb21405e59099a62c4b1c570e491d6bfecd4264736f6c63430008130033","sourceMap":"851:1969:109:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;851:1969:109;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207c63262f618c97eeeaf7fc8db03cb21405e59099a62c4b1c570e491d6bfecd4264736f6c63430008130033","sourceMap":"851:1969:109:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"StrategyStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"StrategyStruct"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"id":109} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a8ce1f7809661a73e3fee131cf3e27fe6d54ada9f738dcbe5cd3a9ca036bcab64736f6c63430008130033","sourceMap":"851:1969:127:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;851:1969:127;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212206a8ce1f7809661a73e3fee131cf3e27fe6d54ada9f738dcbe5cd3a9ca036bcab64736f6c63430008130033","sourceMap":"851:1969:127:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"StrategyStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"StrategyStruct"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75791,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75790],"ERC165":[58322],"ERC20":[57039],"IAllo":[2610],"IERC165":[58528],"IPointStrategy":[73022],"Math":[59394],"Metadata":[3098],"RegistryCommunity":[77913],"StrategyStruct":[73113],"console":[29766]},"nodeType":"SourceUnit","src":"42:40063:127","nodes":[{"id":72977,"nodeType":"PragmaDirective","src":"42:24:127","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72980,"nodeType":"ImportDirective","src":"68:82:127","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72978,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72979,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72983,"nodeType":"ImportDirective","src":"152:68:127","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":77914,"symbolAliases":[{"foreign":{"id":72981,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"160:17:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72982,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72986,"nodeType":"ImportDirective","src":"221:87:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":58323,"symbolAliases":[{"foreign":{"id":72984,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58322,"src":"229:6:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72985,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58528,"src":"237:7:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72988,"nodeType":"ImportDirective","src":"309:68:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":57040,"symbolAliases":[{"foreign":{"id":72987,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"317:5:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72990,"nodeType":"ImportDirective","src":"379:46:127","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":29767,"symbolAliases":[{"foreign":{"id":72989,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"387:7:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72992,"nodeType":"ImportDirective","src":"427:65:127","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75791,"sourceUnit":59395,"symbolAliases":[{"foreign":{"id":72991,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"435:4:127","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":73022,"nodeType":"ContractDefinition","src":"494:355:127","nodes":[{"id":72997,"nodeType":"FunctionDefinition","src":"525:52:127","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:127","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72994,"mutability":"mutable","name":"_member","nameLocation":"559:7:127","nodeType":"VariableDeclaration","scope":72997,"src":"551:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72993,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:127"},"returnParameters":{"id":72996,"nodeType":"ParameterList","parameters":[],"src":"576:0:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73006,"nodeType":"FunctionDefinition","src":"582:91:127","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:127","parameters":{"id":73002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72999,"mutability":"mutable","name":"_member","nameLocation":"613:7:127","nodeType":"VariableDeclaration","scope":73006,"src":"605:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72998,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73001,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:127","nodeType":"VariableDeclaration","scope":73006,"src":"622:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73000,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:127"},"returnParameters":{"id":73005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73004,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73006,"src":"664:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73003,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73015,"nodeType":"FunctionDefinition","src":"678:92:127","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:127","parameters":{"id":73011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73008,"mutability":"mutable","name":"_member","nameLocation":"709:7:127","nodeType":"VariableDeclaration","scope":73015,"src":"701:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73007,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73010,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:127","nodeType":"VariableDeclaration","scope":73015,"src":"718:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:127"},"returnParameters":{"id":73014,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73013,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73015,"src":"761:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73012,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73021,"nodeType":"FunctionDefinition","src":"775:72:127","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:127","parameters":{"id":73016,"nodeType":"ParameterList","parameters":[],"src":"798:2:127"},"returnParameters":{"id":73020,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73019,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73021,"src":"819:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73018,"nodeType":"UserDefinedTypeName","pathNode":{"id":73017,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:127","834:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"819:26:127"},"referencedDeclaration":73031,"src":"819:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:127"},"scope":73022,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[73022],"name":"IPointStrategy","nameLocation":"504:14:127","scope":75791,"usedErrors":[]},{"id":73113,"nodeType":"ContractDefinition","src":"851:1969:127","nodes":[{"id":73026,"nodeType":"EnumDefinition","src":"880:79:127","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":73023,"name":"Signaling","nameLocation":"908:9:127","nodeType":"EnumValue","src":"908:9:127"},{"id":73024,"name":"Funding","nameLocation":"927:7:127","nodeType":"EnumValue","src":"927:7:127"},{"id":73025,"name":"Streaming","nameLocation":"944:9:127","nodeType":"EnumValue","src":"944:9:127"}],"name":"ProposalType","nameLocation":"885:12:127"},{"id":73031,"nodeType":"EnumDefinition","src":"965:92:127","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":73027,"name":"Fixed","nameLocation":"992:5:127","nodeType":"EnumValue","src":"992:5:127"},{"id":73028,"name":"Capped","nameLocation":"1007:6:127","nodeType":"EnumValue","src":"1007:6:127"},{"id":73029,"name":"Unlimited","nameLocation":"1023:9:127","nodeType":"EnumValue","src":"1023:9:127"},{"id":73030,"name":"Quadratic","nameLocation":"1042:9:127","nodeType":"EnumValue","src":"1042:9:127"}],"name":"PointSystem","nameLocation":"970:11:127"},{"id":73043,"nodeType":"StructDefinition","src":"1063:243:127","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":73033,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:127","nodeType":"VariableDeclaration","scope":73043,"src":"1126:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73032,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73035,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:127","nodeType":"VariableDeclaration","scope":73043,"src":"1150:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73034,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73037,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:127","nodeType":"VariableDeclaration","scope":73043,"src":"1217:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73039,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:127","nodeType":"VariableDeclaration","scope":73043,"src":"1250:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73038,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73042,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:127","nodeType":"VariableDeclaration","scope":73043,"src":"1282:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":73041,"nodeType":"UserDefinedTypeName","pathNode":{"id":73040,"name":"Metadata","nameLocations":["1282:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:127"},"referencedDeclaration":3098,"src":"1282:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:127","scope":73113,"visibility":"public"},{"id":73049,"nodeType":"EnumDefinition","src":"1312:289:127","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":73044,"name":"Inactive","nameLocation":"1342:8:127","nodeType":"EnumValue","src":"1342:8:127"},{"id":73045,"name":"Active","nameLocation":"1372:6:127","nodeType":"EnumValue","src":"1372:6:127"},{"id":73046,"name":"Paused","nameLocation":"1435:6:127","nodeType":"EnumValue","src":"1435:6:127"},{"id":73047,"name":"Cancelled","nameLocation":"1500:9:127","nodeType":"EnumValue","src":"1500:9:127"},{"id":73048,"name":"Executed","nameLocation":"1553:8:127","nodeType":"EnumValue","src":"1553:8:127"}],"name":"ProposalStatus","nameLocation":"1317:14:127"},{"id":73076,"nodeType":"StructDefinition","src":"1607:405:127","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":73051,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:127","nodeType":"VariableDeclaration","scope":73076,"src":"1633:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73050,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73053,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:127","nodeType":"VariableDeclaration","scope":73076,"src":"1661:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73052,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73055,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:127","nodeType":"VariableDeclaration","scope":73076,"src":"1694:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73054,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73057,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1724:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73056,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73059,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:127","nodeType":"VariableDeclaration","scope":73076,"src":"1756:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73058,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73061,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:127","nodeType":"VariableDeclaration","scope":73076,"src":"1785:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73060,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73063,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1812:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73062,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73065,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:127","nodeType":"VariableDeclaration","scope":73076,"src":"1844:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73064,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73068,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:127","nodeType":"VariableDeclaration","scope":73076,"src":"1871:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":73067,"nodeType":"UserDefinedTypeName","pathNode":{"id":73066,"name":"ProposalStatus","nameLocations":["1871:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73049,"src":"1871:14:127"},"referencedDeclaration":73049,"src":"1871:14:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":73072,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:127","nodeType":"VariableDeclaration","scope":73076,"src":"1910:45:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73071,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73069,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73070,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":73075,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:127","nodeType":"VariableDeclaration","scope":73076,"src":"1988:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":73074,"nodeType":"UserDefinedTypeName","pathNode":{"id":73073,"name":"Metadata","nameLocations":["1988:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:127"},"referencedDeclaration":3098,"src":"1988:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:127","scope":73113,"visibility":"public"},{"id":73081,"nodeType":"StructDefinition","src":"2018:126:127","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":73078,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:127","nodeType":"VariableDeclaration","scope":73081,"src":"2051:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73077,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73080,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:127","nodeType":"VariableDeclaration","scope":73081,"src":"2079:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73079,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:127","scope":73113,"visibility":"public"},{"id":73084,"nodeType":"StructDefinition","src":"2150:89:127","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":73083,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:127","nodeType":"VariableDeclaration","scope":73084,"src":"2215:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73082,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:127","scope":73113,"visibility":"public"},{"id":73089,"nodeType":"StructDefinition","src":"2245:88:127","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":73086,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:127","nodeType":"VariableDeclaration","scope":73089,"src":"2274:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73085,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73088,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:127","nodeType":"VariableDeclaration","scope":73089,"src":"2309:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73087,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:127","scope":73113,"visibility":"public"},{"id":73112,"nodeType":"StructDefinition","src":"2339:479:127","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":73091,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:127","nodeType":"VariableDeclaration","scope":73112,"src":"2373:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73090,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73093,"mutability":"mutable","name":"decay","nameLocation":"2445:5:127","nodeType":"VariableDeclaration","scope":73112,"src":"2437:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73092,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73095,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:127","nodeType":"VariableDeclaration","scope":73112,"src":"2507:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73094,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73097,"mutability":"mutable","name":"weight","nameLocation":"2569:6:127","nodeType":"VariableDeclaration","scope":73112,"src":"2561:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73096,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73099,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:127","nodeType":"VariableDeclaration","scope":73112,"src":"2585:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73102,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:127","nodeType":"VariableDeclaration","scope":73112,"src":"2646:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73101,"nodeType":"UserDefinedTypeName","pathNode":{"id":73100,"name":"ProposalType","nameLocations":["2646:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"2646:12:127"},"referencedDeclaration":73026,"src":"2646:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":73105,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2716:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73104,"nodeType":"UserDefinedTypeName","pathNode":{"id":73103,"name":"PointSystem","nameLocations":["2716:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"2716:11:127"},"referencedDeclaration":73031,"src":"2716:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":73108,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2749:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73107,"nodeType":"UserDefinedTypeName","pathNode":{"id":73106,"name":"PointSystemConfig","nameLocations":["2749:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"2749:17:127"},"referencedDeclaration":73084,"src":"2749:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":73111,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:127","nodeType":"VariableDeclaration","scope":73112,"src":"2788:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$73089_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":73110,"nodeType":"UserDefinedTypeName","pathNode":{"id":73109,"name":"SybilConfig","nameLocations":["2788:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73089,"src":"2788:11:127"},"referencedDeclaration":73089,"src":"2788:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$73089_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:127","scope":73113,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[73113],"name":"StrategyStruct","nameLocation":"859:14:127","scope":75791,"usedErrors":[]},{"id":75790,"nodeType":"ContractDefinition","src":"2822:37282:127","nodes":[{"id":73122,"nodeType":"UsingForDirective","src":"2888:23:127","nodes":[],"global":false,"libraryName":{"id":73120,"name":"Math","nameLocations":["2894:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":59394,"src":"2894:4:127"},"typeName":{"id":73121,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":73124,"nodeType":"ErrorDefinition","src":"3082:25:127","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:127","parameters":{"id":73123,"nodeType":"ParameterList","parameters":[],"src":"3104:2:127"}},{"id":73126,"nodeType":"ErrorDefinition","src":"3126:26:127","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:127","parameters":{"id":73125,"nodeType":"ParameterList","parameters":[],"src":"3149:2:127"}},{"id":73128,"nodeType":"ErrorDefinition","src":"3170:23:127","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:127","parameters":{"id":73127,"nodeType":"ParameterList","parameters":[],"src":"3190:2:127"}},{"id":73130,"nodeType":"ErrorDefinition","src":"3212:20:127","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:127","parameters":{"id":73129,"nodeType":"ParameterList","parameters":[],"src":"3229:2:127"}},{"id":73132,"nodeType":"ErrorDefinition","src":"3251:23:127","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:127","parameters":{"id":73131,"nodeType":"ParameterList","parameters":[],"src":"3271:2:127"}},{"id":73134,"nodeType":"ErrorDefinition","src":"3292:26:127","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:127","parameters":{"id":73133,"nodeType":"ParameterList","parameters":[],"src":"3315:2:127"}},{"id":73136,"nodeType":"ErrorDefinition","src":"3336:24:127","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:127","parameters":{"id":73135,"nodeType":"ParameterList","parameters":[],"src":"3357:2:127"}},{"id":73138,"nodeType":"ErrorDefinition","src":"3379:27:127","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:127","parameters":{"id":73137,"nodeType":"ParameterList","parameters":[],"src":"3403:2:127"}},{"id":73140,"nodeType":"ErrorDefinition","src":"3425:27:127","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:127","parameters":{"id":73139,"nodeType":"ParameterList","parameters":[],"src":"3449:2:127"}},{"id":73142,"nodeType":"ErrorDefinition","src":"3470:28:127","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:127","parameters":{"id":73141,"nodeType":"ParameterList","parameters":[],"src":"3495:2:127"}},{"id":73144,"nodeType":"ErrorDefinition","src":"3516:29:127","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:127","parameters":{"id":73143,"nodeType":"ParameterList","parameters":[],"src":"3542:2:127"}},{"id":73152,"nodeType":"ErrorDefinition","src":"3564:72:127","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:127","parameters":{"id":73151,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73146,"mutability":"mutable","name":"_support","nameLocation":"3595:8:127","nodeType":"VariableDeclaration","scope":73152,"src":"3587:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73145,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73148,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:127","nodeType":"VariableDeclaration","scope":73152,"src":"3605:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73147,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":73150,"mutability":"mutable","name":"_result","nameLocation":"3627:7:127","nodeType":"VariableDeclaration","scope":73152,"src":"3620:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":73149,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:127"}},{"id":73154,"nodeType":"ErrorDefinition","src":"3655:25:127","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:127","parameters":{"id":73153,"nodeType":"ParameterList","parameters":[],"src":"3677:2:127"}},{"id":73156,"nodeType":"ErrorDefinition","src":"3699:32:127","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:127","parameters":{"id":73155,"nodeType":"ParameterList","parameters":[],"src":"3728:2:127"}},{"id":73162,"nodeType":"ErrorDefinition","src":"3750:77:127","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:127","parameters":{"id":73161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73158,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:127","nodeType":"VariableDeclaration","scope":73162,"src":"3781:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73157,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73160,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:127","nodeType":"VariableDeclaration","scope":73162,"src":"3804:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73159,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:127"}},{"id":73164,"nodeType":"ErrorDefinition","src":"3847:28:127","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:127","parameters":{"id":73163,"nodeType":"ParameterList","parameters":[],"src":"3872:2:127"}},{"id":73166,"nodeType":"ErrorDefinition","src":"3893:31:127","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:127","parameters":{"id":73165,"nodeType":"ParameterList","parameters":[],"src":"3921:2:127"}},{"id":73170,"nodeType":"ErrorDefinition","src":"3942:45:127","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:127","parameters":{"id":73169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73168,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:127","nodeType":"VariableDeclaration","scope":73170,"src":"3966:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73167,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:127"}},{"id":73174,"nodeType":"ErrorDefinition","src":"4006:45:127","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:127","parameters":{"id":73173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73172,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:127","nodeType":"VariableDeclaration","scope":73174,"src":"4030:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73171,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:127"}},{"id":73180,"nodeType":"ErrorDefinition","src":"4070:68:127","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:127","parameters":{"id":73179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73176,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:127","nodeType":"VariableDeclaration","scope":73180,"src":"4102:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73175,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73178,"mutability":"mutable","name":"index","nameLocation":"4131:5:127","nodeType":"VariableDeclaration","scope":73180,"src":"4123:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73177,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:127"}},{"id":73182,"nodeType":"ErrorDefinition","src":"4156:40:127","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:127","parameters":{"id":73181,"nodeType":"ParameterList","parameters":[],"src":"4193:2:127"}},{"id":73184,"nodeType":"ErrorDefinition","src":"4215:29:127","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:127","parameters":{"id":73183,"nodeType":"ParameterList","parameters":[],"src":"4241:2:127"}},{"id":73192,"nodeType":"ErrorDefinition","src":"4263:94:127","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:127","parameters":{"id":73191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73186,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:127","nodeType":"VariableDeclaration","scope":73192,"src":"4289:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73185,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73188,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:127","nodeType":"VariableDeclaration","scope":73192,"src":"4310:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73187,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73190,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:127","nodeType":"VariableDeclaration","scope":73192,"src":"4336:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73189,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:127"}},{"id":73199,"nodeType":"EventDefinition","src":"4542:74:127","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:127","parameters":{"id":73198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73194,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:127","nodeType":"VariableDeclaration","scope":73199,"src":"4562:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73193,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73197,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:127","nodeType":"VariableDeclaration","scope":73199,"src":"4578:36:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73196,"nodeType":"UserDefinedTypeName","pathNode":{"id":73195,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:127","4593:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"4578:31:127"},"referencedDeclaration":73112,"src":"4578:31:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:127"}},{"id":73207,"nodeType":"EventDefinition","src":"4621:75:127","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:127","parameters":{"id":73206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73201,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:127","nodeType":"VariableDeclaration","scope":73207,"src":"4639:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73200,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73203,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:127","nodeType":"VariableDeclaration","scope":73207,"src":"4659:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73202,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73205,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:127","nodeType":"VariableDeclaration","scope":73207,"src":"4680:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73204,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:127"}},{"id":73213,"nodeType":"EventDefinition","src":"4701:58:127","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:127","parameters":{"id":73212,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73209,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:127","nodeType":"VariableDeclaration","scope":73213,"src":"4723:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73208,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73211,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:127","nodeType":"VariableDeclaration","scope":73213,"src":"4739:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73210,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:127"}},{"id":73217,"nodeType":"EventDefinition","src":"4764:42:127","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:127","parameters":{"id":73216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73215,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:127","nodeType":"VariableDeclaration","scope":73217,"src":"4790:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73214,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:127"}},{"id":73225,"nodeType":"EventDefinition","src":"4811:85:127","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:127","parameters":{"id":73224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73219,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:127","nodeType":"VariableDeclaration","scope":73225,"src":"4832:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73218,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73221,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:127","nodeType":"VariableDeclaration","scope":73225,"src":"4848:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73220,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73223,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:127","nodeType":"VariableDeclaration","scope":73225,"src":"4870:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73222,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:127"}},{"id":73233,"nodeType":"EventDefinition","src":"4901:87:127","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:127","parameters":{"id":73232,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73227,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:127","nodeType":"VariableDeclaration","scope":73233,"src":"4922:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73226,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73229,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:127","nodeType":"VariableDeclaration","scope":73233,"src":"4938:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73228,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73231,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:127","nodeType":"VariableDeclaration","scope":73233,"src":"4962:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73230,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:127"}},{"id":73245,"nodeType":"EventDefinition","src":"4993:134:127","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:127","parameters":{"id":73244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73235,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:127","nodeType":"VariableDeclaration","scope":73245,"src":"5021:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73234,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73237,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:127","nodeType":"VariableDeclaration","scope":73245,"src":"5035:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73236,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73239,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:127","nodeType":"VariableDeclaration","scope":73245,"src":"5055:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73238,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73241,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:127","nodeType":"VariableDeclaration","scope":73245,"src":"5071:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73240,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73243,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:127","nodeType":"VariableDeclaration","scope":73245,"src":"5098:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73242,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:127"}},{"id":73249,"nodeType":"EventDefinition","src":"5132:40:127","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:127","parameters":{"id":73248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73247,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:127","nodeType":"VariableDeclaration","scope":73249,"src":"5156:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73246,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:127"}},{"id":73253,"nodeType":"EventDefinition","src":"5177:34:127","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:127","parameters":{"id":73252,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73251,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:127","nodeType":"VariableDeclaration","scope":73253,"src":"5196:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73250,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:127"}},{"id":73257,"nodeType":"EventDefinition","src":"5216:40:127","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:127","parameters":{"id":73256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73255,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:127","nodeType":"VariableDeclaration","scope":73257,"src":"5238:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73254,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:127"}},{"id":73261,"nodeType":"EventDefinition","src":"5261:36:127","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:127","parameters":{"id":73260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73259,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:127","nodeType":"VariableDeclaration","scope":73261,"src":"5281:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73258,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:127"}},{"id":73265,"nodeType":"EventDefinition","src":"5302:49:127","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:127","parameters":{"id":73264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73263,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:127","nodeType":"VariableDeclaration","scope":73265,"src":"5324:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73262,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:127"}},{"id":73271,"nodeType":"EventDefinition","src":"5356:76:127","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:127","parameters":{"id":73270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73267,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:127","nodeType":"VariableDeclaration","scope":73271,"src":"5388:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73266,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73269,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:127","nodeType":"VariableDeclaration","scope":73271,"src":"5404:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73268,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:127"}},{"id":73274,"nodeType":"VariableDeclaration","src":"5806:36:127","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73272,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:127","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73277,"nodeType":"VariableDeclaration","src":"5856:70:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73275,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:127","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73280,"nodeType":"VariableDeclaration","src":"5942:69:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73278,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:127","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73283,"nodeType":"VariableDeclaration","src":"6027:53:127","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73281,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73286,"nodeType":"VariableDeclaration","src":"6095:49:127","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73284,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73288,"nodeType":"VariableDeclaration","src":"6272:20:127","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73287,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73290,"nodeType":"VariableDeclaration","src":"6298:23:127","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73289,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73292,"nodeType":"VariableDeclaration","src":"6327:21:127","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73291,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73295,"nodeType":"VariableDeclaration","src":"6354:34:127","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73293,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73297,"nodeType":"VariableDeclaration","src":"6394:26:127","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73296,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73299,"nodeType":"VariableDeclaration","src":"6426:35:127","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73298,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73302,"nodeType":"VariableDeclaration","src":"6467:38:127","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73300,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73304,"nodeType":"VariableDeclaration","src":"6546:47:127","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73303,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73307,"nodeType":"VariableDeclaration","src":"6678:47:127","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73306,"nodeType":"UserDefinedTypeName","pathNode":{"id":73305,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:127","6693:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"6678:27:127"},"referencedDeclaration":73026,"src":"6678:27:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73310,"nodeType":"VariableDeclaration","src":"6784:45:127","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73309,"nodeType":"UserDefinedTypeName","pathNode":{"id":73308,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:127","6799:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"6784:26:127"},"referencedDeclaration":73031,"src":"6784:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73313,"nodeType":"VariableDeclaration","src":"6835:51:127","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73312,"nodeType":"UserDefinedTypeName","pathNode":{"id":73311,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:127","6850:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"6835:32:127"},"referencedDeclaration":73084,"src":"6835:32:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73316,"nodeType":"VariableDeclaration","src":"6919:42:127","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"},"typeName":{"id":73315,"nodeType":"UserDefinedTypeName","pathNode":{"id":73314,"name":"RegistryCommunity","nameLocations":["6919:17:127"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"6919:17:127"},"referencedDeclaration":77913,"src":"6919:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73321,"nodeType":"VariableDeclaration","src":"7028:60:127","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73320,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73317,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73319,"nodeType":"UserDefinedTypeName","pathNode":{"id":73318,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:127","7062:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"7047:23:127"},"referencedDeclaration":73076,"src":"7047:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73325,"nodeType":"VariableDeclaration","src":"7144:53:127","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73324,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73322,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73323,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73330,"nodeType":"VariableDeclaration","src":"7235:57:127","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:127","scope":75790,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73329,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73326,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73327,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73328,"nodeType":"ArrayTypeName","src":"7254:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73343,"nodeType":"FunctionDefinition","src":"7496:72:127","nodes":[],"body":{"id":73342,"nodeType":"Block","src":"7566:2:127","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73337,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73332,"src":"7544:5:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73336,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73335,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:127","typeDescriptions":{}}},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73340,"kind":"baseConstructorSpecifier","modifierName":{"id":73334,"name":"BaseStrategy","nameLocations":["7523:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:127"},"nodeType":"ModifierInvocation","src":"7523:42:127"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73333,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73332,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:127","nodeType":"VariableDeclaration","scope":73343,"src":"7508:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73331,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:127"},"returnParameters":{"id":73341,"nodeType":"ParameterList","parameters":[],"src":"7566:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73427,"nodeType":"FunctionDefinition","src":"7574:1028:127","nodes":[],"body":{"id":73426,"nodeType":"Block","src":"7640:962:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":73351,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73345,"src":"7670:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73350,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73353,"nodeType":"ExpressionStatement","src":"7650:28:127"},{"assignments":[73358],"declarations":[{"constant":false,"id":73358,"mutability":"mutable","name":"ip","nameLocation":"7727:2:127","nodeType":"VariableDeclaration","scope":73426,"src":"7688:41:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73357,"nodeType":"UserDefinedTypeName","pathNode":{"id":73356,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:127","7703:16:127"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"7688:31:127"},"referencedDeclaration":73112,"src":"7688:31:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73366,"initialValue":{"arguments":[{"id":73361,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73347,"src":"7743:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73362,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"7751:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:127","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":73112,"src":"7751:31:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73364,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$73112_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73359,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:127","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73367,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8139:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73368,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:127","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"8139:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:127","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":73370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73369,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:127","typeDescriptions":{}}},"id":73372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73378,"nodeType":"IfStatement","src":"8135:94:127","trueBody":{"id":73377,"nodeType":"Block","src":"8175:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73374,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73144,"src":"8196:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73376,"nodeType":"RevertStatement","src":"8189:29:127"}]}},{"expression":{"id":73384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73379,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"8239:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73381,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8277:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73382,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:127","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"8277:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73380,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"8259:17:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77913_$","typeString":"type(contract RegistryCommunity)"}},"id":73383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"src":"8239:59:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73385,"nodeType":"ExpressionStatement","src":"8239:59:127"},{"expression":{"id":73389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73386,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"8308:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73387,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8316:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73388,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:127","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":73093,"src":"8316:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73390,"nodeType":"ExpressionStatement","src":"8308:16:127"},{"expression":{"id":73394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73391,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"8334:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73392,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8345:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73393,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:127","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":73095,"src":"8345:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73395,"nodeType":"ExpressionStatement","src":"8334:22:127"},{"expression":{"id":73399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73396,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"8366:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73397,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8375:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73398,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:127","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":73097,"src":"8375:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73400,"nodeType":"ExpressionStatement","src":"8366:18:127"},{"expression":{"id":73404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73401,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"8394:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73402,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8409:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73403,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:127","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73102,"src":"8409:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"id":73405,"nodeType":"ExpressionStatement","src":"8394:30:127"},{"expression":{"id":73409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73406,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"8434:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73407,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8448:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:127","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":73105,"src":"8448:14:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"id":73410,"nodeType":"ExpressionStatement","src":"8434:28:127"},{"expression":{"id":73414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73411,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"8472:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73412,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8486:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73413,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:127","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":73108,"src":"8486:14:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73415,"nodeType":"ExpressionStatement","src":"8472:28:127"},{"expression":{"id":73419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73416,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"8510:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73417,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8532:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:127","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":73099,"src":"8532:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73420,"nodeType":"ExpressionStatement","src":"8510:43:127"},{"eventCall":{"arguments":[{"id":73422,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73345,"src":"8583:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73423,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73358,"src":"8592:2:127","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73421,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73199,"src":"8569:13:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$73112_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73425,"nodeType":"EmitStatement","src":"8564:31:127"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:127","parameters":{"id":73348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73345,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:127","nodeType":"VariableDeclaration","scope":73427,"src":"7594:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73344,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73347,"mutability":"mutable","name":"_data","nameLocation":"7624:5:127","nodeType":"VariableDeclaration","scope":73427,"src":"7611:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73346,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:127"},"returnParameters":{"id":73349,"nodeType":"ParameterList","parameters":[],"src":"7640:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73431,"nodeType":"FunctionDefinition","src":"8773:83:127","nodes":[],"body":{"id":73430,"nodeType":"Block","src":"8801:55:127","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73428,"nodeType":"ParameterList","parameters":[],"src":"8781:2:127"},"returnParameters":{"id":73429,"nodeType":"ParameterList","parameters":[],"src":"8801:0:127"},"scope":75790,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73435,"nodeType":"FunctionDefinition","src":"8862:135:127","nodes":[],"body":{"id":73434,"nodeType":"Block","src":"8889:108:127","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73432,"nodeType":"ParameterList","parameters":[],"src":"8869:2:127"},"returnParameters":{"id":73433,"nodeType":"ParameterList","parameters":[],"src":"8889:0:127"},"scope":75790,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73456,"nodeType":"FunctionDefinition","src":"9003:202:127","nodes":[],"body":{"id":73455,"nodeType":"Block","src":"9094:111:127","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73443,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73437,"src":"9111:11:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73445,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"9131:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":73444,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:127","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":73447,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:127","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73451,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73437,"src":"9186:11:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73449,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75790_$","typeString":"type(contract super CVStrategy)"}},"id":73450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:127","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58321,"src":"9162:23:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73442,"id":73454,"nodeType":"Return","src":"9104:94:127"}]},"baseFunctions":[58321],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:127","overrides":{"id":73439,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:127"},"parameters":{"id":73438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73437,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:127","nodeType":"VariableDeclaration","scope":73456,"src":"9030:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73436,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:127","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:127"},"returnParameters":{"id":73442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73441,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73456,"src":"9088:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73440,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:127"},"scope":75790,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73497,"nodeType":"FunctionDefinition","src":"9376:377:127","nodes":[],"body":{"id":73496,"nodeType":"Block","src":"9435:318:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73461,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73458,"src":"9449:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:127","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":73463,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73462,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:127","typeDescriptions":{}}},"id":73465,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73471,"nodeType":"IfStatement","src":"9445:77:127","trueBody":{"id":73470,"nodeType":"Block","src":"9472:50:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73467,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"9493:16:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73469,"nodeType":"RevertStatement","src":"9486:25:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73474,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9543:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":73473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73472,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:127","typeDescriptions":{}}},"id":73475,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:127","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":73477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73476,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:127","typeDescriptions":{}}},"id":73479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73485,"nodeType":"IfStatement","src":"9531:100:127","trueBody":{"id":73484,"nodeType":"Block","src":"9577:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73481,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73144,"src":"9598:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73483,"nodeType":"RevertStatement","src":"9591:29:127"}]}},{"condition":{"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:127","subExpression":{"arguments":[{"id":73488,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73458,"src":"9672:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73486,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9645:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:127","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77494,"src":"9645:26:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73495,"nodeType":"IfStatement","src":"9640:93:127","trueBody":{"id":73494,"nodeType":"Block","src":"9682:51:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73491,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73126,"src":"9703:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73492,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73493,"nodeType":"RevertStatement","src":"9696:26:127"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:127","parameters":{"id":73459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73458,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:127","nodeType":"VariableDeclaration","scope":73497,"src":"9405:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73457,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:127"},"returnParameters":{"id":73460,"nodeType":"ParameterList","parameters":[],"src":"9435:0:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73513,"nodeType":"FunctionDefinition","src":"9759:162:127","nodes":[],"body":{"id":73512,"nodeType":"Block","src":"9805:116:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73500,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:127","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73504,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"9841:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":73503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73502,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:127","typeDescriptions":{}}},"id":73505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73511,"nodeType":"IfStatement","src":"9815:100:127","trueBody":{"id":73510,"nodeType":"Block","src":"9861:54:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73507,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73184,"src":"9882:20:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73509,"nodeType":"RevertStatement","src":"9875:29:127"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:127","parameters":{"id":73498,"nodeType":"ParameterList","parameters":[],"src":"9789:2:127"},"returnParameters":{"id":73499,"nodeType":"ParameterList","parameters":[],"src":"9805:0:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73529,"nodeType":"FunctionDefinition","src":"9927:132:127","nodes":[],"body":{"id":73528,"nodeType":"Block","src":"9986:73:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73518,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73515,"src":"10000:8:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:127","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":73520,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73519,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:127","typeDescriptions":{}}},"id":73522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73527,"nodeType":"IfStatement","src":"9996:56:127","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73524,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73142,"src":"10031:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73526,"nodeType":"RevertStatement","src":"10024:28:127"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:127","parameters":{"id":73516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73515,"mutability":"mutable","name":"_address","nameLocation":"9962:8:127","nodeType":"VariableDeclaration","scope":73529,"src":"9954:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73514,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:127"},"returnParameters":{"id":73517,"nodeType":"ParameterList","parameters":[],"src":"9986:0:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73704,"nodeType":"FunctionDefinition","src":"10385:1945:127","nodes":[],"body":{"id":73703,"nodeType":"Block","src":"10486:1844:127","nodes":[],"statements":[{"expression":{"id":73539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73531,"src":"10541:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73540,"nodeType":"ExpressionStatement","src":"10541:5:127"},{"assignments":[73545],"declarations":[{"constant":false,"id":73545,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:127","nodeType":"VariableDeclaration","scope":73703,"src":"10556:45:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73544,"nodeType":"UserDefinedTypeName","pathNode":{"id":73543,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:127","10571:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73043,"src":"10556:29:127"},"referencedDeclaration":73043,"src":"10556:29:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73553,"initialValue":{"arguments":[{"id":73548,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73531,"src":"10615:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73549,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"10623:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:127","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":73043,"src":"10623:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73551,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$73043_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73546,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73547,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:127","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73554,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"10769:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73555,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:127","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":73033,"src":"10769:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73562,"nodeType":"IfStatement","src":"10765:78:127","trueBody":{"id":73561,"nodeType":"Block","src":"10791:52:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73558,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73140,"src":"10812:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"RevertStatement","src":"10805:27:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":73567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73563,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"10919:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73564,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"10935:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:127","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":73026,"src":"10935:27:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$73026_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73566,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:127","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":73024,"src":"10935:35:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73614,"nodeType":"IfStatement","src":"10915:721:127","trueBody":{"id":73613,"nodeType":"Block","src":"10972:664:127","statements":[{"expression":{"arguments":[{"expression":{"id":73569,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11004:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73570,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73035,"src":"11004:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73568,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"10986:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73572,"nodeType":"ExpressionStatement","src":"10986:39:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73573,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11091:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73574,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11091:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:127","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":73576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73575,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:127","typeDescriptions":{}}},"id":73578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73584,"nodeType":"IfStatement","src":"11087:102:127","trueBody":{"id":73583,"nodeType":"Block","src":"11130:59:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73580,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73134,"src":"11155:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73582,"nodeType":"RevertStatement","src":"11148:26:127"}]}},{"assignments":[73586],"declarations":[{"constant":false,"id":73586,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:127","nodeType":"VariableDeclaration","scope":73613,"src":"11202:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73585,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73594,"initialValue":{"expression":{"arguments":[{"id":73591,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73587,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}},"id":73588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:127","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73589,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:127","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:127","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:127"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73595,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11276:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73596,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11276:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73597,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73586,"src":"11303:9:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73603,"nodeType":"IfStatement","src":"11272:234:127","trueBody":{"id":73602,"nodeType":"Block","src":"11314:192:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73599,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73136,"src":"11474:15:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73601,"nodeType":"RevertStatement","src":"11467:24:127"}]}},{"condition":{"arguments":[{"expression":{"id":73605,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11539:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73606,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:127","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":73037,"src":"11539:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73604,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74871,"src":"11523:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73612,"nodeType":"IfStatement","src":"11519:107:127","trueBody":{"id":73611,"nodeType":"Block","src":"11566:60:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73608,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73138,"src":"11591:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73610,"nodeType":"RevertStatement","src":"11584:27:127"}]}}]}},{"assignments":[73616],"declarations":[{"constant":false,"id":73616,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:127","nodeType":"VariableDeclaration","scope":73703,"src":"11645:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73615,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73619,"initialValue":{"id":73618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:127","subExpression":{"id":73617,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73295,"src":"11668:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:127"},{"assignments":[73624],"declarations":[{"constant":false,"id":73624,"mutability":"mutable","name":"p","nameLocation":"11725:1:127","nodeType":"VariableDeclaration","scope":73703,"src":"11693:33:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73623,"nodeType":"UserDefinedTypeName","pathNode":{"id":73622,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:127","11708:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"11693:23:127"},"referencedDeclaration":73076,"src":"11693:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73628,"initialValue":{"baseExpression":{"id":73625,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"11729:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73627,"indexExpression":{"id":73626,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"11739:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:127"},{"expression":{"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73629,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11761:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73631,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"11761:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73632,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"11776:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73634,"nodeType":"ExpressionStatement","src":"11761:25:127"},{"expression":{"id":73639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73635,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11796:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73637,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"11796:11:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73638,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73533,"src":"11810:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73640,"nodeType":"ExpressionStatement","src":"11796:21:127"},{"expression":{"id":73646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73641,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11827:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73643,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"11827:13:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73644,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11843:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73645,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73035,"src":"11843:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73647,"nodeType":"ExpressionStatement","src":"11827:36:127"},{"expression":{"id":73653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73648,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11873:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73650,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73063,"src":"11873:16:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73651,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11892:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73652,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73039,"src":"11892:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73654,"nodeType":"ExpressionStatement","src":"11873:42:127"},{"expression":{"id":73660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73655,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"11925:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73657,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"11925:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73658,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"11945:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:127","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":73037,"src":"11945:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73661,"nodeType":"ExpressionStatement","src":"11925:44:127"},{"expression":{"id":73668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73662,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12030:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73664,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"12030:16:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73665,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"12049:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"12049:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73667,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"12049:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73669,"nodeType":"ExpressionStatement","src":"12030:55:127"},{"expression":{"id":73675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73670,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12095:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73672,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"12095:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73673,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:127","memberName":"number","nodeType":"MemberAccess","src":"12109:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73676,"nodeType":"ExpressionStatement","src":"12095:26:127"},{"expression":{"id":73681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73677,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12131:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73679,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"12131:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73680,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73682,"nodeType":"ExpressionStatement","src":"12131:20:127"},{"expression":{"id":73688,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73683,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73624,"src":"12197:1:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73685,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73075,"src":"12197:10:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73686,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73545,"src":"12210:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$73043_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73042,"src":"12210:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73689,"nodeType":"ExpressionStatement","src":"12197:30:127"},{"eventCall":{"arguments":[{"id":73691,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73692,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"12267:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73690,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73213,"src":"12243:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73694,"nodeType":"EmitStatement","src":"12238:40:127"},{"expression":{"arguments":[{"arguments":[{"id":73699,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73616,"src":"12311:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73698,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73697,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:127","typeDescriptions":{}}},"id":73700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73696,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73695,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:127","typeDescriptions":{}}},"id":73701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73538,"id":73702,"nodeType":"Return","src":"12288:35:127"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:127","overrides":{"id":73535,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:127"},"parameters":{"id":73534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73531,"mutability":"mutable","name":"_data","nameLocation":"10426:5:127","nodeType":"VariableDeclaration","scope":73704,"src":"10413:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73530,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73533,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:127","nodeType":"VariableDeclaration","scope":73704,"src":"10433:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73532,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:127"},"returnParameters":{"id":73538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73704,"src":"10477:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73734,"nodeType":"FunctionDefinition","src":"12336:253:127","nodes":[],"body":{"id":73733,"nodeType":"Block","src":"12371:218:127","nodes":[],"statements":[{"assignments":[73708],"declarations":[{"constant":false,"id":73708,"mutability":"mutable","name":"member","nameLocation":"12389:6:127","nodeType":"VariableDeclaration","scope":73733,"src":"12381:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73707,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73711,"initialValue":{"expression":{"id":73709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:127","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:127"},{"expression":{"arguments":[{"id":73715,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"12461:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73718,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73717,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73716,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:127","typeDescriptions":{}}},"id":73719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73712,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12418:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73714,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:127","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76872,"src":"12418:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73721,"nodeType":"ExpressionStatement","src":"12418:65:127"},{"expression":{"id":73731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73722,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"12493:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73725,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73708,"src":"12560:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73728,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73727,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73726,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:127","typeDescriptions":{}}},"id":73729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73723,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12517:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"12517:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73732,"nodeType":"ExpressionStatement","src":"12493:89:127"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:127","parameters":{"id":73705,"nodeType":"ParameterList","parameters":[],"src":"12359:2:127"},"returnParameters":{"id":73706,"nodeType":"ParameterList","parameters":[],"src":"12371:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73743,"nodeType":"FunctionDefinition","src":"12595:81:127","nodes":[],"body":{"id":73742,"nodeType":"Block","src":"12630:46:127","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73738,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:127","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73737,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"12640:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73741,"nodeType":"ExpressionStatement","src":"12640:29:127"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:127","parameters":{"id":73735,"nodeType":"ParameterList","parameters":[],"src":"12620:2:127"},"returnParameters":{"id":73736,"nodeType":"ParameterList","parameters":[],"src":"12630:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73756,"nodeType":"FunctionDefinition","src":"12682:128:127","nodes":[],"body":{"id":73755,"nodeType":"Block","src":"12734:76:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73748,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"12744:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73750,"nodeType":"ExpressionStatement","src":"12744:23:127"},{"expression":{"arguments":[{"id":73752,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73745,"src":"12795:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73751,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73791,"src":"12777:17:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73754,"nodeType":"ExpressionStatement","src":"12777:26:127"}]},"baseFunctions":[72997],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:127","parameters":{"id":73746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73745,"mutability":"mutable","name":"_member","nameLocation":"12716:7:127","nodeType":"VariableDeclaration","scope":73756,"src":"12708:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73744,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:127"},"returnParameters":{"id":73747,"nodeType":"ParameterList","parameters":[],"src":"12734:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73791,"nodeType":"FunctionDefinition","src":"12816:351:127","nodes":[],"body":{"id":73790,"nodeType":"Block","src":"12869:298:127","nodes":[],"statements":[{"expression":{"id":73770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73761,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"12879:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73764,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"12946:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73767,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73766,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73765,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:127","typeDescriptions":{}}},"id":73768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73762,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12903:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"12903:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73771,"nodeType":"ExpressionStatement","src":"12879:90:127"},{"expression":{"arguments":[{"id":73775,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13024:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73778,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73777,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73776,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:127","typeDescriptions":{}}},"id":73779,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73772,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12979:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:127","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76931,"src":"12979:44:127","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73781,"nodeType":"ExpressionStatement","src":"12979:68:127"},{"expression":{"arguments":[{"id":73783,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13111:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73782,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74665,"src":"13102:8:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73784,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73785,"nodeType":"ExpressionStatement","src":"13102:17:127"},{"eventCall":{"arguments":[{"id":73787,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73758,"src":"13152:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73786,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73249,"src":"13134:17:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73789,"nodeType":"EmitStatement","src":"13129:31:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:127","parameters":{"id":73759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73758,"mutability":"mutable","name":"_member","nameLocation":"12851:7:127","nodeType":"VariableDeclaration","scope":73791,"src":"12843:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73757,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:127"},"returnParameters":{"id":73760,"nodeType":"ParameterList","parameters":[],"src":"12869:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73875,"nodeType":"FunctionDefinition","src":"13173:958:127","nodes":[],"body":{"id":73874,"nodeType":"Block","src":"13264:867:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73800,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"13319:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73802,"nodeType":"ExpressionStatement","src":"13319:23:127"},{"assignments":[73804],"declarations":[{"constant":false,"id":73804,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:127","nodeType":"VariableDeclaration","scope":73874,"src":"13352:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73803,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73806,"initialValue":{"hexValue":"30","id":73805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:127"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73807,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13394:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73808,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13409:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13409:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:127","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":73029,"src":"13409:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73819,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13539:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73820,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13554:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13554:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73822,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:127","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":73028,"src":"13554:33:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73832,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"13687:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73833,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"13702:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"13702:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73835,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:127","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":73030,"src":"13702:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73845,"nodeType":"IfStatement","src":"13683:148:127","trueBody":{"id":73844,"nodeType":"Block","src":"13740:91:127","statements":[{"expression":{"id":73842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73837,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13754:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73839,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13796:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73840,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13805:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73838,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74088,"src":"13773:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73843,"nodeType":"ExpressionStatement","src":"13754:66:127"}]}},"id":73846,"nodeType":"IfStatement","src":"13535:296:127","trueBody":{"id":73831,"nodeType":"Block","src":"13589:88:127","statements":[{"expression":{"id":73829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73824,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13603:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73826,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13642:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73827,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13651:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73825,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"13622:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73828,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73830,"nodeType":"ExpressionStatement","src":"13603:63:127"}]}},"id":73847,"nodeType":"IfStatement","src":"13390:441:127","trueBody":{"id":73818,"nodeType":"Block","src":"13447:82:127","statements":[{"expression":{"id":73816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73812,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13461:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73814,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"13503:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73813,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73941,"src":"13480:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73817,"nodeType":"ExpressionStatement","src":"13461:57:127"}]}},{"assignments":[73849],"declarations":[{"constant":false,"id":73849,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:127","nodeType":"VariableDeclaration","scope":73874,"src":"13840:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73848,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73858,"initialValue":{"arguments":[{"id":73852,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"13905:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73855,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73854,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73853,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:127","typeDescriptions":{}}},"id":73856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73850,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"13859:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73851,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:127","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76406,"src":"13859:45:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73857,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:127"},{"condition":{"id":73859,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73849,"src":"13942:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73865,"nodeType":"IfStatement","src":"13938:82:127","trueBody":{"id":73864,"nodeType":"Block","src":"13955:65:127","statements":[{"expression":{"id":73862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73860,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"13969:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73861,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"13993:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73863,"nodeType":"ExpressionStatement","src":"13969:40:127"}]}},{"eventCall":{"arguments":[{"id":73867,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"14049:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73868,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73795,"src":"14058:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73869,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"14074:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73866,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73225,"src":"14034:14:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73871,"nodeType":"EmitStatement","src":"14029:62:127"},{"expression":{"id":73872,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73804,"src":"14108:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73799,"id":73873,"nodeType":"Return","src":"14101:23:127"}]},"baseFunctions":[73006],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:127","parameters":{"id":73796,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73793,"mutability":"mutable","name":"_member","nameLocation":"13204:7:127","nodeType":"VariableDeclaration","scope":73875,"src":"13196:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73792,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73795,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:127","nodeType":"VariableDeclaration","scope":73875,"src":"13213:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73794,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:127"},"returnParameters":{"id":73799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73875,"src":"13255:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73797,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73931,"nodeType":"FunctionDefinition","src":"14137:681:127","nodes":[],"body":{"id":73930,"nodeType":"Block","src":"14230:588:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73884,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73513,"src":"14240:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73886,"nodeType":"ExpressionStatement","src":"14240:23:127"},{"assignments":[73888],"declarations":[{"constant":false,"id":73888,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:127","nodeType":"VariableDeclaration","scope":73930,"src":"14319:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73887,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73890,"initialValue":{"hexValue":"30","id":73889,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73891,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"14361:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73892,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"14376:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"14376:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73894,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:127","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":73029,"src":"14376:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":73900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73896,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"14416:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73897,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"14431:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":73898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:127","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"14431:26:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73899,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:127","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":73028,"src":"14431:33:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73916,"nodeType":"Block","src":"14562:93:127","statements":[{"expression":{"id":73914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73909,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14576:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73911,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14618:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73912,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14627:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73910,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74192,"src":"14595:22:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73915,"nodeType":"ExpressionStatement","src":"14576:68:127"}]},"id":73917,"nodeType":"IfStatement","src":"14357:298:127","trueBody":{"id":73908,"nodeType":"Block","src":"14466:90:127","statements":[{"expression":{"id":73906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73902,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14480:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73904,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14528:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73903,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"14499:28:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73907,"nodeType":"ExpressionStatement","src":"14480:65:127"}]}},{"expression":{"id":73920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73918,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"14664:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73919,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14688:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73921,"nodeType":"ExpressionStatement","src":"14664:40:127"},{"eventCall":{"arguments":[{"id":73923,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14734:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73924,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"14743:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73925,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14761:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73922,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73233,"src":"14719:14:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73927,"nodeType":"EmitStatement","src":"14714:64:127"},{"expression":{"id":73928,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73888,"src":"14795:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73883,"id":73929,"nodeType":"Return","src":"14788:23:127"}]},"baseFunctions":[73015],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:127","parameters":{"id":73880,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73877,"mutability":"mutable","name":"_member","nameLocation":"14168:7:127","nodeType":"VariableDeclaration","scope":73931,"src":"14160:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73876,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73879,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:127","nodeType":"VariableDeclaration","scope":73931,"src":"14177:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73878,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:127"},"returnParameters":{"id":73883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73882,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73931,"src":"14221:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73881,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73941,"nodeType":"FunctionDefinition","src":"14824:126:127","nodes":[],"body":{"id":73940,"nodeType":"Block","src":"14912:38:127","nodes":[],"statements":[{"expression":{"id":73938,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73933,"src":"14929:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73937,"id":73939,"nodeType":"Return","src":"14922:21:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:127","parameters":{"id":73934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73933,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:127","nodeType":"VariableDeclaration","scope":73941,"src":"14856:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73932,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:127"},"returnParameters":{"id":73937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73936,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73941,"src":"14903:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73935,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74004,"nodeType":"FunctionDefinition","src":"14956:615:127","nodes":[],"body":{"id":74003,"nodeType":"Block","src":"15058:513:127","nodes":[],"statements":[{"assignments":[73951],"declarations":[{"constant":false,"id":73951,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:127","nodeType":"VariableDeclaration","scope":74003,"src":"15068:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73950,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73953,"initialValue":{"id":73952,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73945,"src":"15095:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:127"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73957,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73958,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15153:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73954,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15119:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15119:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73960,"nodeType":"ExpressionStatement","src":"15119:51:127"},{"assignments":[73962],"declarations":[{"constant":false,"id":73962,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:127","nodeType":"VariableDeclaration","scope":74003,"src":"15180:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73961,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73971,"initialValue":{"arguments":[{"id":73965,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73943,"src":"15245:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73968,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":73967,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73966,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:127","typeDescriptions":{}}},"id":73969,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73963,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15202:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":73964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"15202:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:127"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73975,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73976,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15305:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73972,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15278:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15278:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73978,"nodeType":"ExpressionStatement","src":"15278:39:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73979,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15331:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73980,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15345:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73982,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"15364:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73983,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"15364:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73993,"nodeType":"IfStatement","src":"15327:139:127","trueBody":{"id":73992,"nodeType":"Block","src":"15387:79:127","statements":[{"expression":{"id":73990,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73985,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15401:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73986,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"15420:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73987,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"15420:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73988,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73962,"src":"15444:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73991,"nodeType":"ExpressionStatement","src":"15401:54:127"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73997,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73998,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15513:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73994,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15475:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":73996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"15475:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74000,"nodeType":"ExpressionStatement","src":"15475:55:127"},{"expression":{"id":74001,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73951,"src":"15548:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73949,"id":74002,"nodeType":"Return","src":"15541:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:127","parameters":{"id":73946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73943,"mutability":"mutable","name":"_member","nameLocation":"14993:7:127","nodeType":"VariableDeclaration","scope":74004,"src":"14985:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73942,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73945,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:127","nodeType":"VariableDeclaration","scope":74004,"src":"15002:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73944,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:127"},"returnParameters":{"id":73949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73948,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74004,"src":"15049:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73947,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74088,"nodeType":"FunctionDefinition","src":"15577:730:127","nodes":[],"body":{"id":74087,"nodeType":"Block","src":"15682:625:127","nodes":[],"statements":[{"assignments":[74014],"declarations":[{"constant":false,"id":74014,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:127","nodeType":"VariableDeclaration","scope":74087,"src":"15692:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74013,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74021,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74017,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74006,"src":"15753:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74015,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15713:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:127","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77267,"src":"15713:39:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":74019,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74008,"src":"15764:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:127"},{"assignments":[74023],"declarations":[{"constant":false,"id":74023,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:127","nodeType":"VariableDeclaration","scope":74087,"src":"15789:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74022,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74025,"initialValue":{"hexValue":"3138","id":74024,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:127","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:127"},{"clauses":[{"block":{"id":74046,"nodeType":"Block","src":"15907:52:127","statements":[{"expression":{"id":74044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74039,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74023,"src":"15921:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74042,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74037,"src":"15939:8:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":74041,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74040,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:127","typeDescriptions":{}}},"id":74043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74045,"nodeType":"ExpressionStatement","src":"15921:27:127"}]},"errorName":"","id":74047,"nodeType":"TryCatchClause","parameters":{"id":74038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74037,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:127","nodeType":"VariableDeclaration","scope":74047,"src":"15891:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74036,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:127"},"src":"15882:77:127"},{"block":{"id":74054,"nodeType":"Block","src":"15966:61:127","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":74051,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":74048,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"15980:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74050,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22297,"src":"15980:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":74052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74053,"nodeType":"ExpressionStatement","src":"15980:36:127"}]},"errorName":"","id":74055,"nodeType":"TryCatchClause","src":"15960:67:127"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74029,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"15837:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:127","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"15837:29:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$57117_$","typeString":"function () view external returns (contract IERC20)"}},"id":74031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":74028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74027,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:127","typeDescriptions":{}}},"id":74032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74026,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"15823:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$57039_$","typeString":"type(contract ERC20)"}},"id":74033,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$57039","typeString":"contract ERC20"}},"id":74034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:127","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56527,"src":"15823:56:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":74035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:127","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":74056,"nodeType":"TryStatement","src":"15819:208:127"},{"assignments":[74058],"declarations":[{"constant":false,"id":74058,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:127","nodeType":"VariableDeclaration","scope":74087,"src":"16036:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74057,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74067,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74061,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74014,"src":"16071:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":74062,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":74063,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74023,"src":"16090:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74059,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"16061:4:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59394_$","typeString":"type(library Math)"}},"id":74060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:127","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58898,"src":"16061:9:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":74066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:127"},{"assignments":[74069],"declarations":[{"constant":false,"id":74069,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:127","nodeType":"VariableDeclaration","scope":74087,"src":"16108:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74068,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74078,"initialValue":{"arguments":[{"id":74072,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74006,"src":"16175:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74075,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74073,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:127","typeDescriptions":{}}},"id":74076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74070,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16132:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74071,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"16132:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74077,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:127"},{"assignments":[74080],"declarations":[{"constant":false,"id":74080,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:127","nodeType":"VariableDeclaration","scope":74087,"src":"16209:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74079,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74084,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74083,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74081,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74058,"src":"16236:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74082,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"16253:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:127"},{"expression":{"id":74085,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74080,"src":"16284:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74012,"id":74086,"nodeType":"Return","src":"16277:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:127","parameters":{"id":74009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74006,"mutability":"mutable","name":"_member","nameLocation":"15617:7:127","nodeType":"VariableDeclaration","scope":74088,"src":"15609:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74005,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74008,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:127","nodeType":"VariableDeclaration","scope":74088,"src":"15626:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74007,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:127"},"returnParameters":{"id":74012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74011,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74088,"src":"15673:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74010,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74098,"nodeType":"FunctionDefinition","src":"16313:136:127","nodes":[],"body":{"id":74097,"nodeType":"Block","src":"16409:40:127","nodes":[],"statements":[{"expression":{"id":74095,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"16426:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74094,"id":74096,"nodeType":"Return","src":"16419:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:127","parameters":{"id":74091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74090,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:127","nodeType":"VariableDeclaration","scope":74098,"src":"16351:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74089,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:127"},"returnParameters":{"id":74094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74093,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74098,"src":"16400:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74092,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74192,"nodeType":"FunctionDefinition","src":"16455:802:127","nodes":[],"body":{"id":74191,"nodeType":"Block","src":"16562:695:127","nodes":[],"statements":[{"assignments":[74108],"declarations":[{"constant":false,"id":74108,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:127","nodeType":"VariableDeclaration","scope":74191,"src":"16572:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74107,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74110,"initialValue":{"hexValue":"3138","id":74109,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:127","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:127"},{"clauses":[{"block":{"id":74131,"nodeType":"Block","src":"16690:52:127","statements":[{"expression":{"id":74129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74124,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74108,"src":"16704:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":74127,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74122,"src":"16722:8:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":74126,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74125,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:127","typeDescriptions":{}}},"id":74128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74130,"nodeType":"ExpressionStatement","src":"16704:27:127"}]},"errorName":"","id":74132,"nodeType":"TryCatchClause","parameters":{"id":74123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74122,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:127","nodeType":"VariableDeclaration","scope":74132,"src":"16674:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":74121,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:127","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:127"},"src":"16665:77:127"},{"block":{"id":74139,"nodeType":"Block","src":"16749:61:127","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":74136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":74133,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16763:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22297,"src":"16763:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":74137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74138,"nodeType":"ExpressionStatement","src":"16763:36:127"}]},"errorName":"","id":74140,"nodeType":"TryCatchClause","src":"16743:67:127"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74114,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16620:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:127","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76370,"src":"16620:29:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$57117_$","typeString":"function () view external returns (contract IERC20)"}},"id":74116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":74113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74112,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:127","typeDescriptions":{}}},"id":74117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74111,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57039,"src":"16606:5:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$57039_$","typeString":"type(contract ERC20)"}},"id":74118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$57039","typeString":"contract ERC20"}},"id":74119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:127","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56527,"src":"16606:56:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":74120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:127","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":74141,"nodeType":"TryStatement","src":"16602:208:127"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":74145,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":74146,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74102,"src":"16851:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74142,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16819:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"16819:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":74147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74148,"nodeType":"ExpressionStatement","src":"16819:49:127"},{"assignments":[74150],"declarations":[{"constant":false,"id":74150,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:127","nodeType":"VariableDeclaration","scope":74191,"src":"16878:21:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74149,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74157,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74153,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74100,"src":"16942:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74151,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"16902:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:127","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77267,"src":"16902:39:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74155,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74102,"src":"16953:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:127"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":74161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":74162,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"17008:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74158,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"16979:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":74160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:127","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"16979:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":74163,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74164,"nodeType":"ExpressionStatement","src":"16979:43:127"},{"assignments":[74166],"declarations":[{"constant":false,"id":74166,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:127","nodeType":"VariableDeclaration","scope":74191,"src":"17032:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74165,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74175,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74169,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"17067:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74172,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":74170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:127","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":74171,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74108,"src":"17089:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74167,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59394,"src":"17057:4:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59394_$","typeString":"type(library Math)"}},"id":74168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:127","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58898,"src":"17057:9:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":74174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:127"},{"assignments":[74177],"declarations":[{"constant":false,"id":74177,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:127","nodeType":"VariableDeclaration","scope":74191,"src":"17107:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74176,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74188,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":74180,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74100,"src":"17177:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74183,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74181,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:127","typeDescriptions":{}}},"id":74184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74178,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"17134:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"17134:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74186,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74166,"src":"17203:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:127"},{"expression":{"id":74189,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74177,"src":"17234:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74106,"id":74190,"nodeType":"Return","src":"17227:23:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:127","parameters":{"id":74103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74100,"mutability":"mutable","name":"_member","nameLocation":"16495:7:127","nodeType":"VariableDeclaration","scope":74192,"src":"16487:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74099,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74102,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:127","nodeType":"VariableDeclaration","scope":74192,"src":"16504:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74101,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:127"},"returnParameters":{"id":74106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74105,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74192,"src":"16553:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74104,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74201,"nodeType":"FunctionDefinition","src":"17263:99:127","nodes":[],"body":{"id":74200,"nodeType":"Block","src":"17317:45:127","nodes":[],"statements":[{"expression":{"expression":{"id":74197,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73313,"src":"17334:11:127","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":74198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:127","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"17334:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74196,"id":74199,"nodeType":"Return","src":"17327:28:127"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:127","parameters":{"id":74193,"nodeType":"ParameterList","parameters":[],"src":"17284:2:127"},"returnParameters":{"id":74196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74201,"src":"17308:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74194,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74210,"nodeType":"FunctionDefinition","src":"17368:110:127","nodes":[],"body":{"id":74209,"nodeType":"Block","src":"17443:35:127","nodes":[],"statements":[{"expression":{"id":74207,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"17460:11:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":74206,"id":74208,"nodeType":"Return","src":"17453:18:127"}]},"baseFunctions":[73021],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:127","parameters":{"id":74202,"nodeType":"ParameterList","parameters":[],"src":"17391:2:127"},"returnParameters":{"id":74206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74205,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74210,"src":"17415:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":74204,"nodeType":"UserDefinedTypeName","pathNode":{"id":74203,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:127","17430:11:127"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"17415:26:127"},"referencedDeclaration":73031,"src":"17415:26:127","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74221,"nodeType":"FunctionDefinition","src":"17594:226:127","nodes":[],"body":{"id":74220,"nodeType":"Block","src":"17672:148:127","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74217,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73132,"src":"17737:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74219,"nodeType":"RevertStatement","src":"17730:23:127"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:127","parameters":{"id":74215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74214,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74221,"src":"17619:39:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74212,"nodeType":"UserDefinedTypeName","pathNode":{"id":74211,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:127","17634:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"17619:30:127"},"referencedDeclaration":73081,"src":"17619:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74213,"nodeType":"ArrayTypeName","src":"17619:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:127"},"returnParameters":{"id":74216,"nodeType":"ParameterList","parameters":[],"src":"17672:0:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74277,"nodeType":"FunctionDefinition","src":"17966:551:127","nodes":[],"body":{"id":74276,"nodeType":"Block","src":"18040:477:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74230,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18070:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74229,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73497,"src":"18050:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74232,"nodeType":"ExpressionStatement","src":"18050:28:127"},{"assignments":[74234],"declarations":[{"constant":false,"id":74234,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:127","nodeType":"VariableDeclaration","scope":74276,"src":"18134:28:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74233,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74243,"initialValue":{"arguments":[{"id":74237,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18211:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74240,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74239,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74238,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:127","typeDescriptions":{}}},"id":74241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74235,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"18165:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:127","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76406,"src":"18165:45:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:127"},{"condition":{"id":74245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:127","subExpression":{"id":74244,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74234,"src":"18249:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74250,"nodeType":"IfStatement","src":"18244:78:127","trueBody":{"id":74249,"nodeType":"Block","src":"18274:48:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74246,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73128,"src":"18295:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74248,"nodeType":"RevertStatement","src":"18288:23:127"}]}},{"assignments":[74256],"declarations":[{"constant":false,"id":74256,"mutability":"mutable","name":"pv","nameLocation":"18371:2:127","nodeType":"VariableDeclaration","scope":74276,"src":"18331:42:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74254,"nodeType":"UserDefinedTypeName","pathNode":{"id":74253,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:127","18346:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"18331:30:127"},"referencedDeclaration":73081,"src":"18331:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74255,"nodeType":"ArrayTypeName","src":"18331:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74265,"initialValue":{"arguments":[{"id":74259,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"18387:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74260,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"18395:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:127","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":73081,"src":"18395:30:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$73081_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:127","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74263,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:127","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74257,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:127","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:127"},{"expression":{"arguments":[{"id":74267,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18464:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74268,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"18473:2:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74266,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74967,"src":"18439:24:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74270,"nodeType":"ExpressionStatement","src":"18439:37:127"},{"expression":{"arguments":[{"id":74272,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74225,"src":"18498:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74273,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74256,"src":"18507:2:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74271,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75254,"src":"18486:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74275,"nodeType":"ExpressionStatement","src":"18486:24:127"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:127","overrides":{"id":74227,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:127"},"parameters":{"id":74226,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74223,"mutability":"mutable","name":"_data","nameLocation":"17998:5:127","nodeType":"VariableDeclaration","scope":74277,"src":"17985:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74222,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74225,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:127","nodeType":"VariableDeclaration","scope":74277,"src":"18005:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74224,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:127"},"returnParameters":{"id":74228,"nodeType":"ParameterList","parameters":[],"src":"18040:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74433,"nodeType":"FunctionDefinition","src":"18773:1756:127","nodes":[],"body":{"id":74432,"nodeType":"Block","src":"18859:1670:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74288,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"18952:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:127","memberName":"length","nodeType":"MemberAccess","src":"18952:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74290,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74296,"nodeType":"IfStatement","src":"18948:76:127","trueBody":{"id":74295,"nodeType":"Block","src":"18971:53:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74292,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73164,"src":"18992:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74294,"nodeType":"RevertStatement","src":"18985:28:127"}]}},{"assignments":[74298],"declarations":[{"constant":false,"id":74298,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:127","nodeType":"VariableDeclaration","scope":74432,"src":"19034:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74297,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74306,"initialValue":{"arguments":[{"id":74301,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74282,"src":"19066:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74302,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:127","typeDescriptions":{}}}],"id":74304,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74299,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:127","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74300,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:127","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:127","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74307,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19098:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74308,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74314,"nodeType":"IfStatement","src":"19094:77:127","trueBody":{"id":74313,"nodeType":"Block","src":"19115:56:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74310,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73166,"src":"19136:22:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74311,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74312,"nodeType":"RevertStatement","src":"19129:31:127"}]}},{"assignments":[74319],"declarations":[{"constant":false,"id":74319,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:127","nodeType":"VariableDeclaration","scope":74432,"src":"19180:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74318,"nodeType":"UserDefinedTypeName","pathNode":{"id":74317,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:127","19195:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"19180:23:127"},"referencedDeclaration":73076,"src":"19180:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74323,"initialValue":{"baseExpression":{"id":74320,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"19223:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74322,"indexExpression":{"id":74321,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19233:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":74328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74324,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73307,"src":"19259:12:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74325,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"19275:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:127","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":73026,"src":"19275:27:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$73026_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:127","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":73024,"src":"19275:35:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74431,"nodeType":"IfStatement","src":"19255:1208:127","trueBody":{"id":74430,"nodeType":"Block","src":"19312:1151:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74329,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19330:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74330,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"19330:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74331,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19353:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74338,"nodeType":"IfStatement","src":"19326:108:127","trueBody":{"id":74337,"nodeType":"Block","src":"19365:69:127","statements":[{"errorCall":{"arguments":[{"id":74334,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19408:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74333,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"19390:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74335,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74336,"nodeType":"RevertStatement","src":"19383:36:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74339,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19452:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74340,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19452:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74341,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74351,"nodeType":"IfStatement","src":"19448:152:127","trueBody":{"id":74350,"nodeType":"Block","src":"19491:109:127","statements":[{"errorCall":{"arguments":[{"id":74344,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19536:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74345,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19548:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74346,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19548:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74347,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74343,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73192,"src":"19516:19:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74349,"nodeType":"RevertStatement","src":"19509:76:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"id":74357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74352,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19618:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"19618:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74354,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"19645:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"19645:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74356,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"19645:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74363,"nodeType":"IfStatement","src":"19614:138:127","trueBody":{"id":74362,"nodeType":"Block","src":"19683:69:127","statements":[{"errorCall":{"arguments":[{"id":74359,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19726:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74358,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73170,"src":"19708:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74361,"nodeType":"RevertStatement","src":"19701:36:127"}]}},{"assignments":[74365],"declarations":[{"constant":false,"id":74365,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:127","nodeType":"VariableDeclaration","scope":74430,"src":"19766:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74364,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74369,"initialValue":{"arguments":[{"id":74367,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"19816:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74366,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75677,"src":"19791:24:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:127"},{"assignments":[74371],"declarations":[{"constant":false,"id":74371,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:127","nodeType":"VariableDeclaration","scope":74430,"src":"19841:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74370,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74376,"initialValue":{"arguments":[{"expression":{"id":74373,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19880:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74374,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19880:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74372,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"19861:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74377,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74365,"src":"19924:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74378,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74371,"src":"19941:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74380,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"19954:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74381,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"19954:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74389,"nodeType":"IfStatement","src":"19920:137:127","trueBody":{"id":74388,"nodeType":"Block","src":"19984:73:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74385,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73182,"src":"20009:31:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74387,"nodeType":"RevertStatement","src":"20002:40:127"}]}},{"assignments":[74394],"declarations":[{"constant":false,"id":74394,"mutability":"mutable","name":"pool","nameLocation":"20089:4:127","nodeType":"VariableDeclaration","scope":74430,"src":"20071:22:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74393,"nodeType":"UserDefinedTypeName","pathNode":{"id":74392,"name":"IAllo.Pool","nameLocations":["20071:5:127","20077:4:127"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:127"},"referencedDeclaration":2319,"src":"20071:10:127","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74399,"initialValue":{"arguments":[{"id":74397,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74395,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:127","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:127"},{"expression":{"id":74403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74400,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74401,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20145:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20145:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74404,"nodeType":"ExpressionStatement","src":"20131:38:127"},{"expression":{"arguments":[{"expression":{"id":74406,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74394,"src":"20207:4:127","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:127","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74408,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20219:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"20219:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74410,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20241:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20241:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74405,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74413,"nodeType":"ExpressionStatement","src":"20191:75:127"},{"expression":{"id":74420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74414,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20297:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"20297:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74417,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"20323:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":74418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"20323:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74419,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:127","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":73048,"src":"20323:38:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74421,"nodeType":"ExpressionStatement","src":"20297:64:127"},{"eventCall":{"arguments":[{"id":74423,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74298,"src":"20393:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20405:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"20405:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74426,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74319,"src":"20427:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"20427:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74422,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[73207,2858],"referencedDeclaration":73207,"src":"20381:11:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74429,"nodeType":"EmitStatement","src":"20376:76:127"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:127","overrides":{"id":74286,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:127"},"parameters":{"id":74285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74280,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74433,"src":"18794:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74278,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74279,"nodeType":"ArrayTypeName","src":"18794:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74282,"mutability":"mutable","name":"_data","nameLocation":"18825:5:127","nodeType":"VariableDeclaration","scope":74433,"src":"18812:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74281,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74433,"src":"18832:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74283,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:127"},"returnParameters":{"id":74287,"nodeType":"ParameterList","parameters":[],"src":"18859:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74487,"nodeType":"FunctionDefinition","src":"20535:735:127","nodes":[],"body":{"id":74486,"nodeType":"Block","src":"20624:646:127","nodes":[],"statements":[{"assignments":[74444],"declarations":[{"constant":false,"id":74444,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:127","nodeType":"VariableDeclaration","scope":74486,"src":"20634:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74443,"nodeType":"UserDefinedTypeName","pathNode":{"id":74442,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:127","20649:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"20634:23:127"},"referencedDeclaration":73076,"src":"20634:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74448,"initialValue":{"baseExpression":{"id":74445,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"20677:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74447,"indexExpression":{"id":74446,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74435,"src":"20687:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:127"},{"assignments":[74450,74452],"declarations":[{"constant":false,"id":74450,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:127","nodeType":"VariableDeclaration","scope":74486,"src":"20784:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74449,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74452,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:127","nodeType":"VariableDeclaration","scope":74486,"src":"20808:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74451,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74458,"initialValue":{"arguments":[{"id":74454,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20877:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74455,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20887:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"20887:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74453,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"20843:33:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74459,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"20924:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74460,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74462,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74452,"src":"20947:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74472,"nodeType":"IfStatement","src":"20920:110:127","trueBody":{"id":74471,"nodeType":"Block","src":"20965:65:127","statements":[{"expression":{"id":74469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74466,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"20979:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74467,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"20996:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"20996:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74470,"nodeType":"ExpressionStatement","src":"20979:40:127"}]}},{"assignments":[74474],"declarations":[{"constant":false,"id":74474,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:127","nodeType":"VariableDeclaration","scope":74486,"src":"21039:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74473,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74479,"initialValue":{"arguments":[{"expression":{"id":74476,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"21078:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74477,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"21078:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74475,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"21059:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:127"},{"expression":{"id":74484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74480,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74438,"src":"21220:13:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74481,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74450,"src":"21236:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74482,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74474,"src":"21254:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74485,"nodeType":"ExpressionStatement","src":"21220:43:127"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:127","parameters":{"id":74436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74435,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:127","nodeType":"VariableDeclaration","scope":74487,"src":"20563:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74434,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:127"},"returnParameters":{"id":74439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74438,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:127","nodeType":"VariableDeclaration","scope":74487,"src":"20604:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74437,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74509,"nodeType":"FunctionDefinition","src":"21560:220:127","nodes":[],"body":{"id":74508,"nodeType":"Block","src":"21651:129:127","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74501,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74496,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74489,"src":"21711:12:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:127","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":74498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74497,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:127","typeDescriptions":{}}},"id":74500,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74504,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74505,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:127","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:127","trueExpression":{"expression":{"id":74502,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74503,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:127","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74495,"id":74507,"nodeType":"Return","src":"21704:69:127"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:127","overrides":{"id":74491,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:127"},"parameters":{"id":74490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74489,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:127","nodeType":"VariableDeclaration","scope":74509,"src":"21589:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74488,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:127"},"returnParameters":{"id":74495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74509,"src":"21643:6:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74493,"nodeType":"UserDefinedTypeName","pathNode":{"id":74492,"name":"Status","nameLocations":["21643:6:127"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:127"},"referencedDeclaration":2815,"src":"21643:6:127","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74528,"nodeType":"FunctionDefinition","src":"21909:288:127","nodes":[],"body":{"id":74527,"nodeType":"Block","src":"22019:178:127","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74524,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73132,"src":"22079:14:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74526,"nodeType":"RevertStatement","src":"22072:23:127"}]},"baseFunctions":[3687],"documentation":{"id":74510,"nodeType":"StructuredDocumentation","src":"21786:118:127","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:127","overrides":{"id":74518,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:127"},"parameters":{"id":74517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74513,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21929:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74511,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74512,"nodeType":"ArrayTypeName","src":"21929:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21947:14:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74514,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74515,"nodeType":"ArrayTypeName","src":"21947:7:127","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:127"},"returnParameters":{"id":74523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74528,"src":"21995:22:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74520,"nodeType":"UserDefinedTypeName","pathNode":{"id":74519,"name":"PayoutSummary","nameLocations":["21995:13:127"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:127"},"referencedDeclaration":2820,"src":"21995:13:127","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74521,"nodeType":"ArrayTypeName","src":"21995:15:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74547,"nodeType":"FunctionDefinition","src":"22203:264:127","nodes":[],"body":{"id":74546,"nodeType":"Block","src":"22355:112:127","nodes":[],"statements":[{"expression":{"id":74539,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74532,"src":"22408:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74540,"nodeType":"ExpressionStatement","src":"22408:5:127"},{"expression":{"arguments":[{"id":74542,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"22444:12:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74543,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74541,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:127","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74538,"id":74545,"nodeType":"Return","src":"22423:37:127"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:127","overrides":{"id":74534,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:127"},"parameters":{"id":74533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74530,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:127","nodeType":"VariableDeclaration","scope":74547,"src":"22223:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74529,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74532,"mutability":"mutable","name":"_data","nameLocation":"22258:5:127","nodeType":"VariableDeclaration","scope":74547,"src":"22245:18:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74531,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:127","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:127"},"returnParameters":{"id":74538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74537,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74547,"src":"22329:20:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74536,"nodeType":"UserDefinedTypeName","pathNode":{"id":74535,"name":"PayoutSummary","nameLocations":["22329:13:127"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:127"},"referencedDeclaration":2820,"src":"22329:13:127","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74558,"nodeType":"FunctionDefinition","src":"22473:127:127","nodes":[],"body":{"id":74557,"nodeType":"Block","src":"22550:50:127","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74554,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"22585:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74553,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73217,"src":"22565:19:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74556,"nodeType":"EmitStatement","src":"22560:33:127"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:127","overrides":{"id":74551,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:127"},"parameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:127","nodeType":"VariableDeclaration","scope":74558,"src":"22507:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74548,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:127"},"returnParameters":{"id":74552,"nodeType":"ParameterList","parameters":[],"src":"22550:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74577,"nodeType":"FunctionDefinition","src":"22695:191:127","nodes":[],"body":{"id":74576,"nodeType":"Block","src":"22780:106:127","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74571,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74566,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74560,"src":"22840:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74569,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:127","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":74568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74567,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:127","typeDescriptions":{}}},"id":74570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:127","trueExpression":{"hexValue":"66616c7365","id":74572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74565,"id":74575,"nodeType":"Return","src":"22833:46:127"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:127","overrides":{"id":74562,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:127"},"parameters":{"id":74561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74560,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:127","nodeType":"VariableDeclaration","scope":74577,"src":"22722:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74559,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:127"},"returnParameters":{"id":74565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74564,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74577,"src":"22774:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74563,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74587,"nodeType":"FunctionDefinition","src":"22892:86:127","nodes":[],"body":{"id":74586,"nodeType":"Block","src":"22938:40:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74583,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74579,"src":"22963:7:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74582,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74585,"nodeType":"ExpressionStatement","src":"22948:23:127"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:127","parameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"_active","nameLocation":"22920:7:127","nodeType":"VariableDeclaration","scope":74587,"src":"22915:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74578,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:127"},"returnParameters":{"id":74581,"nodeType":"ParameterList","parameters":[],"src":"22938:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74665,"nodeType":"FunctionDefinition","src":"22984:729:127","nodes":[],"body":{"id":74664,"nodeType":"Block","src":"23028:685:127","nodes":[],"statements":[{"assignments":[74596],"declarations":[{"constant":false,"id":74596,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:127","nodeType":"VariableDeclaration","scope":74664,"src":"23086:29:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74594,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74595,"nodeType":"ArrayTypeName","src":"23086:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74600,"initialValue":{"baseExpression":{"id":74597,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"23118:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74599,"indexExpression":{"id":74598,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23139:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:127"},{"body":{"id":74662,"nodeType":"Block","src":"23207:500:127","statements":[{"assignments":[74613],"declarations":[{"constant":false,"id":74613,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:127","nodeType":"VariableDeclaration","scope":74662,"src":"23221:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74612,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74617,"initialValue":{"baseExpression":{"id":74614,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"23242:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74616,"indexExpression":{"id":74615,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23255:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:127"},{"assignments":[74622],"declarations":[{"constant":false,"id":74622,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:127","nodeType":"VariableDeclaration","scope":74662,"src":"23271:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74621,"nodeType":"UserDefinedTypeName","pathNode":{"id":74620,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:127","23286:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"23271:23:127"},"referencedDeclaration":73076,"src":"23271:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74626,"initialValue":{"baseExpression":{"id":74623,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"23314:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74625,"indexExpression":{"id":74624,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"23324:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:127"},{"condition":{"arguments":[{"id":74628,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74613,"src":"23368:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74627,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74853,"src":"23353:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74661,"nodeType":"IfStatement","src":"23349:348:127","trueBody":{"id":74660,"nodeType":"Block","src":"23381:316:127","statements":[{"assignments":[74631],"declarations":[{"constant":false,"id":74631,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:127","nodeType":"VariableDeclaration","scope":74660,"src":"23399:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74630,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74636,"initialValue":{"baseExpression":{"expression":{"id":74632,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23422:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74633,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"23422:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74635,"indexExpression":{"id":74634,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23449:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:127"},{"expression":{"id":74643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74637,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23475:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"23475:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74641,"indexExpression":{"id":74639,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"23502:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74642,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74644,"nodeType":"ExpressionStatement","src":"23475:39:127"},{"expression":{"id":74649,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23532:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"23532:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74648,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23557:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74650,"nodeType":"ExpressionStatement","src":"23532:37:127"},{"expression":{"id":74653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74651,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"23587:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74652,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23602:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74654,"nodeType":"ExpressionStatement","src":"23587:27:127"},{"expression":{"arguments":[{"id":74656,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74622,"src":"23659:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74657,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74631,"src":"23669:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74655,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"23632:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74659,"nodeType":"ExpressionStatement","src":"23632:50:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74605,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23177:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74606,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74596,"src":"23181:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:127","memberName":"length","nodeType":"MemberAccess","src":"23181:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74663,"initializationExpression":{"assignments":[74602],"declarations":[{"constant":false,"id":74602,"mutability":"mutable","name":"i","nameLocation":"23170:1:127","nodeType":"VariableDeclaration","scope":74663,"src":"23162:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74601,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74604,"initialValue":{"hexValue":"30","id":74603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:127"},"loopExpression":{"expression":{"id":74610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:127","subExpression":{"id":74609,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74602,"src":"23202:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74611,"nodeType":"ExpressionStatement","src":"23202:3:127"},"nodeType":"ForStatement","src":"23157:550:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:127","parameters":{"id":74590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74589,"mutability":"mutable","name":"_member","nameLocation":"23010:7:127","nodeType":"VariableDeclaration","scope":74665,"src":"23002:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74588,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:127"},"returnParameters":{"id":74591,"nodeType":"ParameterList","parameters":[],"src":"23028:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74739,"nodeType":"FunctionDefinition","src":"24275:1038:127","nodes":[],"body":{"id":74738,"nodeType":"Block","src":"24744:569:127","nodes":[],"statements":[{"assignments":[74696],"declarations":[{"constant":false,"id":74696,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:127","nodeType":"VariableDeclaration","scope":74738,"src":"24754:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74695,"nodeType":"UserDefinedTypeName","pathNode":{"id":74694,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:127","24769:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"24754:23:127"},"referencedDeclaration":73076,"src":"24754:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74700,"initialValue":{"baseExpression":{"id":74697,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"24797:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74699,"indexExpression":{"id":74698,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74668,"src":"24807:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:127"},{"expression":{"id":74712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74701,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74688,"src":"24830:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74702,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24842:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74703,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"24842:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74704,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74708,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24897:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74709,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"24897:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74707,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75433,"src":"24878:18:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74710,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:127","trueExpression":{"hexValue":"30","id":74706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74713,"nodeType":"ExpressionStatement","src":"24830:92:127"},{"expression":{"components":[{"expression":{"id":74714,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24953:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74715,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"24953:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74716,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"24985:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74717,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:127","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":73059,"src":"24985:20:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74718,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25019:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74719,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:127","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":73063,"src":"25019:23:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74720,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25056:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74721,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:127","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":73053,"src":"25056:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74722,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25094:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74723,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"25094:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74724,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25129:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74725,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"25129:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74726,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25166:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"25166:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74728,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25198:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74729,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"25198:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74730,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74688,"src":"25235:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74731,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74696,"src":"25258:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74732,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"25258:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74735,"indexExpression":{"expression":{"id":74733,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:127","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74736,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:127","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$73049_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74691,"id":74737,"nodeType":"Return","src":"24932:374:127"}]},"documentation":{"id":74666,"nodeType":"StructuredDocumentation","src":"23719:551:127","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:127","parameters":{"id":74669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74668,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:127","nodeType":"VariableDeclaration","scope":74739,"src":"24296:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74667,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:127"},"returnParameters":{"id":74691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74671,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24377:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74670,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74673,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:127","nodeType":"VariableDeclaration","scope":74739,"src":"24408:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74672,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74675,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24441:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74674,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74677,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:127","nodeType":"VariableDeclaration","scope":74739,"src":"24477:23:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74676,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74679,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:127","nodeType":"VariableDeclaration","scope":74739,"src":"24514:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74678,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74682,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24548:44:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74681,"nodeType":"UserDefinedTypeName","pathNode":{"id":74680,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:127","24563:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73049,"src":"24548:29:127"},"referencedDeclaration":73049,"src":"24548:29:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74684,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24606:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74683,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74686,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:127","nodeType":"VariableDeclaration","scope":74739,"src":"24637:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74685,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74688,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:127","nodeType":"VariableDeclaration","scope":74739,"src":"24673:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74687,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74690,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:127","nodeType":"VariableDeclaration","scope":74739,"src":"24704:25:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74689,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74760,"nodeType":"FunctionDefinition","src":"25319:198:127","nodes":[],"body":{"id":74759,"nodeType":"Block","src":"25401:116:127","nodes":[],"statements":[{"assignments":[74751],"declarations":[{"constant":false,"id":74751,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:127","nodeType":"VariableDeclaration","scope":74759,"src":"25411:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74750,"nodeType":"UserDefinedTypeName","pathNode":{"id":74749,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:127","25426:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"25411:23:127"},"referencedDeclaration":73076,"src":"25411:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74755,"initialValue":{"baseExpression":{"id":74752,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"25454:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74754,"indexExpression":{"id":74753,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74741,"src":"25464:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:127"},{"expression":{"expression":{"id":74756,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"25493:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74757,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:127","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":73075,"src":"25493:17:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74746,"id":74758,"nodeType":"Return","src":"25486:24:127"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:127","parameters":{"id":74742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74741,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:127","nodeType":"VariableDeclaration","scope":74760,"src":"25340:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74740,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:127"},"returnParameters":{"id":74746,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74745,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74760,"src":"25384:15:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74744,"nodeType":"UserDefinedTypeName","pathNode":{"id":74743,"name":"Metadata","nameLocations":["25384:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:127"},"referencedDeclaration":3098,"src":"25384:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74776,"nodeType":"FunctionDefinition","src":"25718:176:127","nodes":[],"body":{"id":74775,"nodeType":"Block","src":"25818:76:127","nodes":[],"statements":[{"expression":{"arguments":[{"id":74771,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74763,"src":"25867:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74772,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"25880:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74770,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74818,"src":"25835:31:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74769,"id":74774,"nodeType":"Return","src":"25828:59:127"}]},"documentation":{"id":74761,"nodeType":"StructuredDocumentation","src":"25523:190:127","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:127","parameters":{"id":74766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74763,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:127","nodeType":"VariableDeclaration","scope":74776,"src":"25749:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74762,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74765,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:127","nodeType":"VariableDeclaration","scope":74776,"src":"25770:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74764,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:127"},"returnParameters":{"id":74769,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74768,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74776,"src":"25809:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74767,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74789,"nodeType":"FunctionDefinition","src":"25900:145:127","nodes":[],"body":{"id":74788,"nodeType":"Block","src":"25986:59:127","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74783,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26003:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74785,"indexExpression":{"id":74784,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74778,"src":"26013:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74786,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"26003:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74782,"id":74787,"nodeType":"Return","src":"25996:42:127"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:127","parameters":{"id":74779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74778,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:127","nodeType":"VariableDeclaration","scope":74789,"src":"25933:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74777,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:127"},"returnParameters":{"id":74782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74789,"src":"25977:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74780,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74801,"nodeType":"FunctionDefinition","src":"26114:127:127","nodes":[],"body":{"id":74800,"nodeType":"Block","src":"26191:50:127","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74796,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73325,"src":"26208:18:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74798,"indexExpression":{"id":74797,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"26227:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74795,"id":74799,"nodeType":"Return","src":"26201:33:127"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:127","parameters":{"id":74792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74791,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:127","nodeType":"VariableDeclaration","scope":74801,"src":"26145:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74790,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:127"},"returnParameters":{"id":74795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74794,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74801,"src":"26182:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74793,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74818,"nodeType":"FunctionDefinition","src":"26247:182:127","nodes":[],"body":{"id":74817,"nodeType":"Block","src":"26357:72:127","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74810,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26374:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74812,"indexExpression":{"id":74811,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"26384:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74813,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"26374:40:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74815,"indexExpression":{"id":74814,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74805,"src":"26415:6:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74809,"id":74816,"nodeType":"Return","src":"26367:55:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:127","parameters":{"id":74806,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74803,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:127","nodeType":"VariableDeclaration","scope":74818,"src":"26288:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74802,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74805,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:127","nodeType":"VariableDeclaration","scope":74818,"src":"26309:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74804,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:127"},"returnParameters":{"id":74809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74808,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74818,"src":"26348:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74807,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74828,"nodeType":"FunctionDefinition","src":"26435:145:127","nodes":[],"body":{"id":74827,"nodeType":"Block","src":"26499:81:127","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74823,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"26516:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:127","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77710,"src":"26516:38:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74822,"id":74826,"nodeType":"Return","src":"26509:47:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:127","parameters":{"id":74819,"nodeType":"ParameterList","parameters":[],"src":"26464:2:127"},"returnParameters":{"id":74822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74828,"src":"26490:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74820,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74853,"nodeType":"FunctionDefinition","src":"26586:185:127","nodes":[],"body":{"id":74852,"nodeType":"Block","src":"26660:111:127","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74835,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26677:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74837,"indexExpression":{"id":74836,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74830,"src":"26687:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74838,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"26677:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74839,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74849,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74841,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"26718:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74843,"indexExpression":{"id":74842,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74830,"src":"26728:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74844,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:127","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":73061,"src":"26718:32:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74847,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:127","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":74846,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74845,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:127","typeDescriptions":{}}},"id":74848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74834,"id":74851,"nodeType":"Return","src":"26670:94:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:127","parameters":{"id":74831,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74830,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:127","nodeType":"VariableDeclaration","scope":74853,"src":"26610:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74829,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:127"},"returnParameters":{"id":74834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74833,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74853,"src":"26654:4:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74832,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74871,"nodeType":"FunctionDefinition","src":"26777:174:127","nodes":[],"body":{"id":74870,"nodeType":"Block","src":"26872:79:127","nodes":[],"statements":[{"expression":{"id":74868,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74860,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74858,"src":"26882:14:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74867,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74861,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"26899:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74862,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74864,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74855,"src":"26924:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74865,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"26943:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74869,"nodeType":"ExpressionStatement","src":"26882:62:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:127","parameters":{"id":74856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74855,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:127","nodeType":"VariableDeclaration","scope":74871,"src":"26802:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74854,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:127"},"returnParameters":{"id":74859,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74858,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:127","nodeType":"VariableDeclaration","scope":74871,"src":"26851:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74857,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74967,"nodeType":"FunctionDefinition","src":"26957:1548:127","nodes":[],"body":{"id":74966,"nodeType":"Block","src":"27087:1418:127","nodes":[],"statements":[{"assignments":[74881],"declarations":[{"constant":false,"id":74881,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:127","nodeType":"VariableDeclaration","scope":74966,"src":"27097:22:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74880,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74883,"initialValue":{"hexValue":"30","id":74882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:127"},{"body":{"id":74928,"nodeType":"Block","src":"27187:576:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74895,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27260:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74897,"indexExpression":{"id":74896,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27277:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74898,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"27260:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74903,"nodeType":"IfStatement","src":"27256:187:127","trueBody":{"id":74902,"nodeType":"Block","src":"27297:146:127","statements":[{"id":74901,"nodeType":"Continue","src":"27420:8:127"}]}},{"assignments":[74905],"declarations":[{"constant":false,"id":74905,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:127","nodeType":"VariableDeclaration","scope":74928,"src":"27456:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74904,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74910,"initialValue":{"expression":{"baseExpression":{"id":74906,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27477:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74908,"indexExpression":{"id":74907,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27494:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74909,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"27477:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:127"},{"condition":{"id":74914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:127","subExpression":{"arguments":[{"id":74912,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"27541:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74911,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74853,"src":"27526:14:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74913,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74920,"nodeType":"IfStatement","src":"27521:167:127","trueBody":{"id":74919,"nodeType":"Block","src":"27554:134:127","statements":[{"errorCall":{"arguments":[{"id":74916,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74905,"src":"27597:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74915,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"27579:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74918,"nodeType":"RevertStatement","src":"27572:36:127"}]}},{"expression":{"id":74926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74921,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"27701:15:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74922,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27720:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74924,"indexExpression":{"id":74923,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27737:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74925,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:127","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":73080,"src":"27720:32:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74927,"nodeType":"ExpressionStatement","src":"27701:51:127"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74891,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74888,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27153:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74889,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74877,"src":"27157:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:127","memberName":"length","nodeType":"MemberAccess","src":"27157:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74929,"initializationExpression":{"assignments":[74885],"declarations":[{"constant":false,"id":74885,"mutability":"mutable","name":"i","nameLocation":"27146:1:127","nodeType":"VariableDeclaration","scope":74929,"src":"27138:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74884,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74887,"initialValue":{"hexValue":"30","id":74886,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:127"},"loopExpression":{"expression":{"id":74893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:127","subExpression":{"id":74892,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74885,"src":"27182:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74894,"nodeType":"ExpressionStatement","src":"27182:3:127"},"nodeType":"ForStatement","src":"27133:630:127"},{"assignments":[74931],"declarations":[{"constant":false,"id":74931,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:127","nodeType":"VariableDeclaration","scope":74966,"src":"27859:29:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74930,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74938,"initialValue":{"arguments":[{"arguments":[{"id":74934,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"27925:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74933,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74801,"src":"27903:21:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74936,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74881,"src":"27935:15:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74932,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"27891:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:127"},{"assignments":[74940],"declarations":[{"constant":false,"id":74940,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:127","nodeType":"VariableDeclaration","scope":74966,"src":"28033:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74939,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74949,"initialValue":{"arguments":[{"id":74943,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"28105:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74946,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:127","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}],"id":74945,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74944,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:127","typeDescriptions":{}}},"id":74947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74941,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"28062:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":74942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:127","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77254,"src":"28062:42:127","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74950,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28294:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74951,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"28318:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74959,"nodeType":"IfStatement","src":"28290:147:127","trueBody":{"id":74958,"nodeType":"Block","src":"28338:99:127","statements":[{"errorCall":{"arguments":[{"id":74954,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28384:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74955,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74940,"src":"28407:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74953,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73162,"src":"28359:24:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74957,"nodeType":"RevertStatement","src":"28352:74:127"}]}},{"expression":{"id":74964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74960,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73325,"src":"28447:18:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74962,"indexExpression":{"id":74961,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74873,"src":"28466:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74963,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74931,"src":"28477:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74965,"nodeType":"ExpressionStatement","src":"28447:51:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:127","parameters":{"id":74878,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74873,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:127","nodeType":"VariableDeclaration","scope":74967,"src":"26991:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74872,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74877,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:127","nodeType":"VariableDeclaration","scope":74967,"src":"27008:56:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74875,"nodeType":"UserDefinedTypeName","pathNode":{"id":74874,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:127","27023:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"27008:30:127"},"referencedDeclaration":73081,"src":"27008:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74876,"nodeType":"ArrayTypeName","src":"27008:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:127"},"returnParameters":{"id":74879,"nodeType":"ParameterList","parameters":[],"src":"27087:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75254,"nodeType":"FunctionDefinition","src":"28511:3479:127","nodes":[],"body":{"id":75253,"nodeType":"Block","src":"28616:3374:127","nodes":[],"statements":[{"assignments":[74980],"declarations":[{"constant":false,"id":74980,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:127","nodeType":"VariableDeclaration","scope":75253,"src":"28626:29:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74978,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74979,"nodeType":"ArrayTypeName","src":"28626:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74981,"nodeType":"VariableDeclarationStatement","src":"28626:29:127"},{"body":{"id":75251,"nodeType":"Block","src":"28719:3265:127","statements":[{"assignments":[74994],"declarations":[{"constant":false,"id":74994,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:127","nodeType":"VariableDeclaration","scope":75251,"src":"28733:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74993,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74999,"initialValue":{"expression":{"baseExpression":{"id":74995,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"28754:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74997,"indexExpression":{"id":74996,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28771:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74998,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"28754:30:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75000,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28857:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:127","memberName":"length","nodeType":"MemberAccess","src":"28857:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75002,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75102,"nodeType":"Block","src":"29009:764:127","statements":[{"assignments":[75020],"declarations":[{"constant":false,"id":75020,"mutability":"mutable","name":"exist","nameLocation":"29032:5:127","nodeType":"VariableDeclaration","scope":75102,"src":"29027:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75019,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75022,"initialValue":{"hexValue":"66616c7365","id":75021,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:127"},{"body":{"id":75050,"nodeType":"Block","src":"29113:268:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":75034,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29164:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75036,"indexExpression":{"id":75035,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29177:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75037,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29183:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75049,"nodeType":"IfStatement","src":"29160:203:127","trueBody":{"id":75048,"nodeType":"Block","src":"29195:168:127","statements":[{"expression":{"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75039,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75020,"src":"29221:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":75040,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75042,"nodeType":"ExpressionStatement","src":"29221:12:127"},{"errorCall":{"arguments":[{"id":75044,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29292:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75045,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29304:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75043,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73180,"src":"29266:25:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":75046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75047,"nodeType":"RevertStatement","src":"29259:47:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75030,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75027,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29083:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75028,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29087:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:127","memberName":"length","nodeType":"MemberAccess","src":"29087:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75051,"initializationExpression":{"assignments":[75024],"declarations":[{"constant":false,"id":75024,"mutability":"mutable","name":"j","nameLocation":"29076:1:127","nodeType":"VariableDeclaration","scope":75051,"src":"29068:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75023,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75026,"initialValue":{"hexValue":"30","id":75025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:127"},"loopExpression":{"expression":{"id":75032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:127","subExpression":{"id":75031,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75024,"src":"29108:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75033,"nodeType":"ExpressionStatement","src":"29108:3:127"},"nodeType":"ForStatement","src":"29063:318:127"},{"condition":{"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:127","subExpression":{"id":75052,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75020,"src":"29403:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75101,"nodeType":"IfStatement","src":"29398:361:127","trueBody":{"id":75100,"nodeType":"Block","src":"29410:349:127","statements":[{"assignments":[75058],"declarations":[{"constant":false,"id":75058,"mutability":"mutable","name":"temp","nameLocation":"29449:4:127","nodeType":"VariableDeclaration","scope":75100,"src":"29432:21:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":75056,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75057,"nodeType":"ArrayTypeName","src":"29432:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":75067,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75062,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29470:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:127","memberName":"length","nodeType":"MemberAccess","src":"29470:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":75064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75061,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:127","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75059,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75060,"nodeType":"ArrayTypeName","src":"29460:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:127"},{"body":{"id":75087,"nodeType":"Block","src":"29566:74:127","statements":[{"expression":{"id":75085,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75079,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29592:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75081,"indexExpression":{"id":75080,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29597:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":75082,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29602:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75084,"indexExpression":{"id":75083,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29615:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75086,"nodeType":"ExpressionStatement","src":"29592:25:127"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75075,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75072,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29536:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":75073,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29540:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:127","memberName":"length","nodeType":"MemberAccess","src":"29540:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75088,"initializationExpression":{"assignments":[75069],"declarations":[{"constant":false,"id":75069,"mutability":"mutable","name":"j","nameLocation":"29529:1:127","nodeType":"VariableDeclaration","scope":75088,"src":"29521:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75068,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75071,"initialValue":{"hexValue":"30","id":75070,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:127"},"loopExpression":{"expression":{"id":75077,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:127","subExpression":{"id":75076,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75069,"src":"29561:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75078,"nodeType":"ExpressionStatement","src":"29561:3:127"},"nodeType":"ForStatement","src":"29516:124:127"},{"expression":{"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75089,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29661:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75092,"indexExpression":{"expression":{"id":75090,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29666:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75091,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:127","memberName":"length","nodeType":"MemberAccess","src":"29666:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75093,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29689:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75095,"nodeType":"ExpressionStatement","src":"29661:38:127"},{"expression":{"id":75098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75096,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"29721:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75097,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75058,"src":"29736:4:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75099,"nodeType":"ExpressionStatement","src":"29721:19:127"}]}}]},"id":75103,"nodeType":"IfStatement","src":"28853:920:127","trueBody":{"id":75018,"nodeType":"Block","src":"28883:120:127","statements":[{"expression":{"id":75010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75004,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28901:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":75008,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"}],"id":75007,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:127","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":75005,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75006,"nodeType":"ArrayTypeName","src":"28920:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":75009,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75011,"nodeType":"ExpressionStatement","src":"28901:31:127"},{"expression":{"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75012,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74980,"src":"28950:12:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":75014,"indexExpression":{"hexValue":"30","id":75013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75015,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"28968:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75017,"nodeType":"ExpressionStatement","src":"28950:28:127"}]}},{"assignments":[75105],"declarations":[{"constant":false,"id":75105,"mutability":"mutable","name":"delta","nameLocation":"29793:5:127","nodeType":"VariableDeclaration","scope":75251,"src":"29786:12:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75104,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75110,"initialValue":{"expression":{"baseExpression":{"id":75106,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"29801:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":75108,"indexExpression":{"id":75107,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"29818:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":75109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:127","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":73080,"src":"29801:32:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:127"},{"assignments":[75115],"declarations":[{"constant":false,"id":75115,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:127","nodeType":"VariableDeclaration","scope":75251,"src":"29848:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75114,"nodeType":"UserDefinedTypeName","pathNode":{"id":75113,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:127","29863:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"29848:23:127"},"referencedDeclaration":73076,"src":"29848:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75119,"initialValue":{"baseExpression":{"id":75116,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"29891:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75118,"indexExpression":{"id":75117,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"29901:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:127"},{"assignments":[75121],"declarations":[{"constant":false,"id":75121,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:127","nodeType":"VariableDeclaration","scope":75251,"src":"30014:28:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75120,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75126,"initialValue":{"baseExpression":{"expression":{"id":75122,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30045:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"30045:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":75125,"indexExpression":{"id":75124,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30072:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:127"},{"assignments":[75128],"declarations":[{"constant":false,"id":75128,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:127","nodeType":"VariableDeclaration","scope":75251,"src":"30245:20:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75127,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75133,"initialValue":{"arguments":[{"id":75130,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"30280:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75131,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75105,"src":"30302:5:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75129,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75289,"src":"30268:11:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":75132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:127"},{"expression":{"id":75140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":75134,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30443:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75137,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:127","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":73072,"src":"30443:26:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":75138,"indexExpression":{"id":75136,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30470:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75139,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"30481:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75141,"nodeType":"ExpressionStatement","src":"30443:50:127"},{"assignments":[75143],"declarations":[{"constant":false,"id":75143,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:127","nodeType":"VariableDeclaration","scope":75251,"src":"30727:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":75142,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":75145,"initialValue":{"hexValue":"66616c7365","id":75144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:127"},{"body":{"id":75174,"nodeType":"Block","src":"30832:179:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":75159,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"30854:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75161,"indexExpression":{"id":75160,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30875:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75163,"indexExpression":{"id":75162,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30884:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":75164,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"30890:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"30890:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75173,"nodeType":"IfStatement","src":"30850:147:127","trueBody":{"id":75172,"nodeType":"Block","src":"30911:86:127","statements":[{"expression":{"id":75169,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75167,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75143,"src":"30933:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":75168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75170,"nodeType":"ExpressionStatement","src":"30933:18:127"},{"id":75171,"nodeType":"Break","src":"30973:5:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30785:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":75151,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"30789:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75153,"indexExpression":{"id":75152,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"30810:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:127","memberName":"length","nodeType":"MemberAccess","src":"30789:36:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75175,"initializationExpression":{"assignments":[75147],"declarations":[{"constant":false,"id":75147,"mutability":"mutable","name":"k","nameLocation":"30778:1:127","nodeType":"VariableDeclaration","scope":75175,"src":"30770:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75146,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75149,"initialValue":{"hexValue":"30","id":75148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:127"},"loopExpression":{"expression":{"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:127","subExpression":{"id":75156,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75147,"src":"30827:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75158,"nodeType":"ExpressionStatement","src":"30827:3:127"},"nodeType":"ForStatement","src":"30765:246:127"},{"condition":{"id":75177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:127","subExpression":{"id":75176,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75143,"src":"31029:11:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75187,"nodeType":"IfStatement","src":"31024:106:127","trueBody":{"id":75186,"nodeType":"Block","src":"31042:88:127","statements":[{"expression":{"arguments":[{"expression":{"id":75182,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31095:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"31095:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":75178,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73330,"src":"31060:20:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":75180,"indexExpression":{"id":75179,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"31081:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:127","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:127","memberName":"push","nodeType":"MemberAccess","src":"31060:34:127","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75185,"nodeType":"ExpressionStatement","src":"31060:55:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75188,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31285:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75189,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31309:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75220,"nodeType":"Block","src":"31490:161:127","statements":[{"expression":{"id":75210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75206,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"31508:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75207,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31523:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75208,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31546:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75211,"nodeType":"ExpressionStatement","src":"31508:50:127"},{"expression":{"id":75218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75212,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31576:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75214,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31576:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75215,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31601:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75216,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31624:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75219,"nodeType":"ExpressionStatement","src":"31576:60:127"}]},"id":75221,"nodeType":"IfStatement","src":"31281:370:127","trueBody":{"id":75205,"nodeType":"Block","src":"31323:161:127","statements":[{"expression":{"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75191,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73297,"src":"31341:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75192,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31356:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75193,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31371:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75196,"nodeType":"ExpressionStatement","src":"31341:50:127"},{"expression":{"id":75203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31409:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75199,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31409:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75200,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31434:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75201,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31449:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75204,"nodeType":"ExpressionStatement","src":"31409:60:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75222,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31668:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"31668:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75224,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75249,"nodeType":"Block","src":"31765:209:127","statements":[{"expression":{"arguments":[{"id":75235,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31810:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75236,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75121,"src":"31820:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75234,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"31783:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75238,"nodeType":"ExpressionStatement","src":"31783:58:127"},{"eventCall":{"arguments":[{"id":75240,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74969,"src":"31877:7:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75241,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74994,"src":"31886:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75242,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75128,"src":"31898:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75243,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31912:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"31912:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75245,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31935:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"31935:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75239,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73245,"src":"31864:12:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75248,"nodeType":"EmitStatement","src":"31859:100:127"}]},"id":75250,"nodeType":"IfStatement","src":"31664:310:127","trueBody":{"id":75233,"nodeType":"Block","src":"31693:66:127","statements":[{"expression":{"id":75231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75115,"src":"31711:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"31711:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75229,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:127","memberName":"number","nodeType":"MemberAccess","src":"31732:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75232,"nodeType":"ExpressionStatement","src":"31711:33:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28685:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74987,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74973,"src":"28689:16:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:127","memberName":"length","nodeType":"MemberAccess","src":"28689:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75252,"initializationExpression":{"assignments":[74983],"declarations":[{"constant":false,"id":74983,"mutability":"mutable","name":"i","nameLocation":"28678:1:127","nodeType":"VariableDeclaration","scope":75252,"src":"28670:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74982,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74985,"initialValue":{"hexValue":"30","id":74984,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:127"},"loopExpression":{"expression":{"id":74991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:127","subExpression":{"id":74990,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74983,"src":"28714:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74992,"nodeType":"ExpressionStatement","src":"28714:3:127"},"nodeType":"ForStatement","src":"28665:3319:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:127","parameters":{"id":74974,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74969,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:127","nodeType":"VariableDeclaration","scope":75254,"src":"28532:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74968,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74973,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:127","nodeType":"VariableDeclaration","scope":75254,"src":"28549:56:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74971,"nodeType":"UserDefinedTypeName","pathNode":{"id":74970,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:127","28564:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":73081,"src":"28549:30:127"},"referencedDeclaration":73081,"src":"28549:30:127","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$73081_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74972,"nodeType":"ArrayTypeName","src":"28549:32:127","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$73081_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:127"},"returnParameters":{"id":74975,"nodeType":"ParameterList","parameters":[],"src":"28616:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75289,"nodeType":"FunctionDefinition","src":"31996:276:127","nodes":[],"body":{"id":75288,"nodeType":"Block","src":"32082:190:127","nodes":[],"statements":[{"assignments":[75264],"declarations":[{"constant":false,"id":75264,"mutability":"mutable","name":"result","nameLocation":"32099:6:127","nodeType":"VariableDeclaration","scope":75288,"src":"32092:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75263,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75271,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75267,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75256,"src":"32115:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75266,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:127","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75265,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:127","typeDescriptions":{}}},"id":75268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75269,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75258,"src":"32127:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:127"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75272,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32148:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75282,"nodeType":"IfStatement","src":"32144:90:127","trueBody":{"id":75281,"nodeType":"Block","src":"32160:74:127","statements":[{"errorCall":{"arguments":[{"id":75276,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75256,"src":"32198:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75277,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75258,"src":"32208:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75278,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32216:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75275,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73152,"src":"32181:16:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75280,"nodeType":"RevertStatement","src":"32174:49:127"}]}},{"expression":{"arguments":[{"id":75285,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75264,"src":"32258:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:127","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75283,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:127","typeDescriptions":{}}},"id":75286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75262,"id":75287,"nodeType":"Return","src":"32243:22:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:127","parameters":{"id":75259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75256,"mutability":"mutable","name":"_support","nameLocation":"32025:8:127","nodeType":"VariableDeclaration","scope":75289,"src":"32017:16:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75255,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75258,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:127","nodeType":"VariableDeclaration","scope":75289,"src":"32035:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75257,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:127","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:127"},"returnParameters":{"id":75262,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75261,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75289,"src":"32073:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75260,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75345,"nodeType":"FunctionDefinition","src":"32689:1145:127","nodes":[],"body":{"id":75344,"nodeType":"Block","src":"32836:998:127","nodes":[],"statements":[{"assignments":[75302],"declarations":[{"constant":false,"id":75302,"mutability":"mutable","name":"t","nameLocation":"32854:1:127","nodeType":"VariableDeclaration","scope":75344,"src":"32846:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75301,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75304,"initialValue":{"id":75303,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75292,"src":"32858:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:127"},{"assignments":[75306],"declarations":[{"constant":false,"id":75306,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:127","nodeType":"VariableDeclaration","scope":75344,"src":"33184:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75305,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75316,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75308,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"33210:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75309,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75311,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75312,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33226:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75314,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75302,"src":"33229:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75307,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75533,"src":"33204:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:127"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75339,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75317,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"33727:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75318,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75294,"src":"33739:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75321,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75296,"src":"33754:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75322,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33767:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75326,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75324,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"33772:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75325,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75306,"src":"33782:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75327,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75329,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75330,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"33797:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75331,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"33801:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75333,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75335,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75337,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75338,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73280,"src":"33812:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75340,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75300,"id":75343,"nodeType":"Return","src":"33717:110:127"}]},"documentation":{"id":75290,"nodeType":"StructuredDocumentation","src":"32278:406:127","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:127","parameters":{"id":75297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75292,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:127","nodeType":"VariableDeclaration","scope":75345,"src":"32718:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75291,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75294,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:127","nodeType":"VariableDeclaration","scope":75345,"src":"32739:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75293,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75296,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:127","nodeType":"VariableDeclaration","scope":75345,"src":"32758:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75295,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:127"},"returnParameters":{"id":75300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75299,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75345,"src":"32823:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75298,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75433,"nodeType":"FunctionDefinition","src":"34415:1482:127","nodes":[],"body":{"id":75432,"nodeType":"Block","src":"34510:1387:127","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75353,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75360,"nodeType":"IfStatement","src":"34640:66:127","trueBody":{"id":75359,"nodeType":"Block","src":"34661:45:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75356,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73130,"src":"34682:11:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75358,"nodeType":"RevertStatement","src":"34675:20:127"}]}},{"condition":{"arguments":[{"id":75362,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75348,"src":"35162:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75361,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74871,"src":"35146:15:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75368,"nodeType":"IfStatement","src":"35142:91:127","trueBody":{"id":75367,"nodeType":"Block","src":"35181:52:127","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75364,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73138,"src":"35202:18:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75366,"nodeType":"RevertStatement","src":"35195:27:127"}]}},{"assignments":[75370],"declarations":[{"constant":false,"id":75370,"mutability":"mutable","name":"denom","nameLocation":"35389:5:127","nodeType":"VariableDeclaration","scope":75432,"src":"35381:13:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75369,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75388,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75371,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"35398:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75374,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75372,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75373,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75376,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75377,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35420:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75379,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75348,"src":"35425:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:127","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:127","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75385,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:127"},{"expression":{"id":75421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75389,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35475:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75395,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75390,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"35507:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75391,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75393,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75394,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35524:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75396,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75397,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"35531:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75398,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75370,"src":"35539:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75400,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75401,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75403,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75405,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75406,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35556:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75408,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75411,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75409,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"35562:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75410,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"35566:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75412,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75414,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75415,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75541,"src":"35576:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75418,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75419,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:127","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75422,"nodeType":"ExpressionStatement","src":"35475:145:127"},{"expression":{"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75423,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35810:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75426,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75424,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35823:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75425,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"35836:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75428,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"35871:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:127","trueExpression":{"id":75427,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75351,"src":"35858:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75431,"nodeType":"ExpressionStatement","src":"35810:80:127"}]},"documentation":{"id":75346,"nodeType":"StructuredDocumentation","src":"33840:570:127","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:127","parameters":{"id":75349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75348,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:127","nodeType":"VariableDeclaration","scope":75433,"src":"34443:24:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75347,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:127"},"returnParameters":{"id":75352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75351,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:127","nodeType":"VariableDeclaration","scope":75433,"src":"34490:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75350,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75468,"nodeType":"FunctionDefinition","src":"36158:269:127","nodes":[],"body":{"id":75467,"nodeType":"Block","src":"36236:191:127","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75444,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75436,"src":"36254:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75445,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36260:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75443,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75449,"nodeType":"ExpressionStatement","src":"36246:66:127"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75451,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75438,"src":"36330:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75452,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36335:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75450,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75456,"nodeType":"ExpressionStatement","src":"36322:53:127"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75457,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75436,"src":"36394:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75458,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75438,"src":"36399:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75460,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75461,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73280,"src":"36405:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75463,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:127","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75442,"id":75466,"nodeType":"Return","src":"36385:35:127"}]},"documentation":{"id":75434,"nodeType":"StructuredDocumentation","src":"35903:250:127","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:127","parameters":{"id":75439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75436,"mutability":"mutable","name":"_a","nameLocation":"36180:2:127","nodeType":"VariableDeclaration","scope":75468,"src":"36172:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75435,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75438,"mutability":"mutable","name":"_b","nameLocation":"36192:2:127","nodeType":"VariableDeclaration","scope":75468,"src":"36184:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75437,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:127"},"returnParameters":{"id":75442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75441,"mutability":"mutable","name":"_result","nameLocation":"36227:7:127","nodeType":"VariableDeclaration","scope":75468,"src":"36219:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75440,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75533,"nodeType":"FunctionDefinition","src":"36649:447:127","nodes":[],"body":{"id":75532,"nodeType":"Block","src":"36727:369:127","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75479,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"36745:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75480,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36750:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75482,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:127","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75478,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:127","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75484,"nodeType":"ExpressionStatement","src":"36737:53:127"},{"assignments":[75486],"declarations":[{"constant":false,"id":75486,"mutability":"mutable","name":"a","nameLocation":"36808:1:127","nodeType":"VariableDeclaration","scope":75532,"src":"36800:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75485,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75488,"initialValue":{"id":75487,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75471,"src":"36812:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:127"},{"assignments":[75490],"declarations":[{"constant":false,"id":75490,"mutability":"mutable","name":"b","nameLocation":"36832:1:127","nodeType":"VariableDeclaration","scope":75532,"src":"36824:9:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75489,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75492,"initialValue":{"id":75491,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75473,"src":"36836:2:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:127"},{"expression":{"id":75495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75493,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"36848:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75494,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73277,"src":"36858:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75496,"nodeType":"ExpressionStatement","src":"36848:17:127"},{"body":{"id":75530,"nodeType":"Block","src":"36889:201:127","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75500,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36907:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75503,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75528,"nodeType":"Block","src":"36997:83:127","statements":[{"expression":{"id":75522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75517,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"37015:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75519,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75476,"src":"37030:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75520,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"37039:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75518,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75468,"src":"37025:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75523,"nodeType":"ExpressionStatement","src":"37015:26:127"},{"expression":{"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"37059:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75527,"nodeType":"ExpressionStatement","src":"37059:6:127"}]},"id":75529,"nodeType":"IfStatement","src":"36903:177:127","trueBody":{"id":75516,"nodeType":"Block","src":"36919:72:127","statements":[{"expression":{"id":75510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75505,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36937:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75507,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36946:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75508,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75486,"src":"36949:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75506,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75468,"src":"36941:4:127","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75511,"nodeType":"ExpressionStatement","src":"36937:14:127"},{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75512,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36969:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75513,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:127","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"36969:7:127"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75497,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75490,"src":"36882:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75498,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75531,"nodeType":"WhileStatement","src":"36875:215:127"}]},"documentation":{"id":75469,"nodeType":"StructuredDocumentation","src":"36433:211:127","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:127","parameters":{"id":75474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75471,"mutability":"mutable","name":"_a","nameLocation":"36671:2:127","nodeType":"VariableDeclaration","scope":75533,"src":"36663:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75470,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75473,"mutability":"mutable","name":"_b","nameLocation":"36683:2:127","nodeType":"VariableDeclaration","scope":75533,"src":"36675:10:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75472,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:127"},"returnParameters":{"id":75477,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75476,"mutability":"mutable","name":"_result","nameLocation":"36718:7:127","nodeType":"VariableDeclaration","scope":75533,"src":"36710:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75475,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:127"},"scope":75790,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75541,"nodeType":"FunctionDefinition","src":"37102:112:127","nodes":[],"body":{"id":75540,"nodeType":"Block","src":"37170:44:127","nodes":[],"statements":[{"expression":{"id":75538,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73299,"src":"37187:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75537,"id":75539,"nodeType":"Return","src":"37180:27:127"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:127","parameters":{"id":75534,"nodeType":"ParameterList","parameters":[],"src":"37137:2:127"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75541,"src":"37161:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75535,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75582,"nodeType":"FunctionDefinition","src":"37404:396:127","nodes":[],"body":{"id":75581,"nodeType":"Block","src":"37512:288:127","nodes":[],"statements":[{"assignments":[75551,75553],"declarations":[{"constant":false,"id":75551,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:127","nodeType":"VariableDeclaration","scope":75581,"src":"37523:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75550,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75553,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:127","nodeType":"VariableDeclaration","scope":75581,"src":"37543:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75552,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75558,"initialValue":{"arguments":[{"id":75555,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37600:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75556,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75547,"src":"37611:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75554,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"37566:33:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:127"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75559,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"37636:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75560,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75562,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"37655:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75563,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75568,"nodeType":"IfStatement","src":"37632:72:127","trueBody":{"id":75567,"nodeType":"Block","src":"37673:31:127","statements":[{"functionReturnParameters":75549,"id":75566,"nodeType":"Return","src":"37687:7:127"}]}},{"expression":{"id":75573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75569,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37713:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75571,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"37713:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75572,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75553,"src":"37735:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75574,"nodeType":"ExpressionStatement","src":"37713:33:127"},{"expression":{"id":75579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75575,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75545,"src":"37756:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75577,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"37756:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75578,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"37783:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75580,"nodeType":"ExpressionStatement","src":"37756:37:127"}]},"documentation":{"id":75542,"nodeType":"StructuredDocumentation","src":"37220:179:127","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:127","parameters":{"id":75548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75545,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:127","nodeType":"VariableDeclaration","scope":75582,"src":"37440:41:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75544,"nodeType":"UserDefinedTypeName","pathNode":{"id":75543,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:127","37455:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"37440:23:127"},"referencedDeclaration":73076,"src":"37440:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75547,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:127","nodeType":"VariableDeclaration","scope":75582,"src":"37483:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75546,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:127"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[],"src":"37512:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75629,"nodeType":"FunctionDefinition","src":"37806:719:127","nodes":[],"body":{"id":75628,"nodeType":"Block","src":"38004:521:127","nodes":[],"statements":[{"expression":{"id":75597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75594,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38014:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75595,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:127","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:127","memberName":"number","nodeType":"MemberAccess","src":"38028:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75598,"nodeType":"ExpressionStatement","src":"38014:26:127"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75600,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38057:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75601,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38057:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75602,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38080:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75599,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:127","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75605,"nodeType":"ExpressionStatement","src":"38050:42:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75606,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38106:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75607,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38106:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75608,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38129:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75615,"nodeType":"IfStatement","src":"38102:173:127","trueBody":{"id":75614,"nodeType":"Block","src":"38142:133:127","statements":[{"expression":{"components":[{"hexValue":"30","id":75610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75611,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:127","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75612,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:127","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75593,"id":75613,"nodeType":"Return","src":"38222:13:127"}]}},{"expression":{"id":75626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75616,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75590,"src":"38328:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75618,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"38374:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75619,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38388:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75620,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:127","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":73065,"src":"38388:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75622,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"38460:9:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"38460:24:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75624,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75587,"src":"38498:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75617,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75345,"src":"38341:19:127","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75627,"nodeType":"ExpressionStatement","src":"38328:190:127"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:127","parameters":{"id":75588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75585,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:127","nodeType":"VariableDeclaration","scope":75629,"src":"37849:41:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75584,"nodeType":"UserDefinedTypeName","pathNode":{"id":75583,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:127","37864:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"37849:23:127"},"referencedDeclaration":73076,"src":"37849:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75587,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:127","nodeType":"VariableDeclaration","scope":75629,"src":"37892:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75586,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:127"},"returnParameters":{"id":75593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75590,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:127","nodeType":"VariableDeclaration","scope":75629,"src":"37959:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75589,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75592,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:127","nodeType":"VariableDeclaration","scope":75629,"src":"37979:19:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75591,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75677,"nodeType":"FunctionDefinition","src":"38531:520:127","nodes":[],"body":{"id":75676,"nodeType":"Block","src":"38610:441:127","nodes":[],"statements":[{"assignments":[75640],"declarations":[{"constant":false,"id":75640,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:127","nodeType":"VariableDeclaration","scope":75676,"src":"38620:40:127","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75639,"nodeType":"UserDefinedTypeName","pathNode":{"id":75638,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:127","38635:8:127"],"nodeType":"IdentifierPath","referencedDeclaration":73076,"src":"38620:23:127"},"referencedDeclaration":73076,"src":"38620:23:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75644,"initialValue":{"baseExpression":{"id":75641,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73321,"src":"38663:9:127","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$73076_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75643,"indexExpression":{"id":75642,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38673:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:127"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75645,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38699:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75646,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:127","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":73051,"src":"38699:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75647,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38722:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75654,"nodeType":"IfStatement","src":"38695:100:127","trueBody":{"id":75653,"nodeType":"Block","src":"38734:61:127","statements":[{"errorCall":{"arguments":[{"id":75650,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38773:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75649,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73174,"src":"38755:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75652,"nodeType":"RevertStatement","src":"38748:36:127"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"},"id":75660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75655,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38809:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75656,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:127","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":73068,"src":"38809:23:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75657,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"38836:14:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":75658,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:127","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":73049,"src":"38836:29:127","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$73049_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:127","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":73045,"src":"38836:36:127","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$73049","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:127","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75666,"nodeType":"IfStatement","src":"38805:130:127","trueBody":{"id":75665,"nodeType":"Block","src":"38874:61:127","statements":[{"errorCall":{"arguments":[{"id":75662,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"38913:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75661,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73170,"src":"38895:17:127","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75664,"nodeType":"RevertStatement","src":"38888:36:127"}]}},{"expression":{"arguments":[{"id":75668,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38972:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75669,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"38982:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:127","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":73055,"src":"38982:21:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75667,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75582,"src":"38945:26:127","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$73076_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75672,"nodeType":"ExpressionStatement","src":"38945:59:127"},{"expression":{"expression":{"id":75673,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75640,"src":"39021:8:127","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$73076_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75674,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:127","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":73057,"src":"39021:23:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75635,"id":75675,"nodeType":"Return","src":"39014:30:127"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:127","parameters":{"id":75632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75631,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:127","nodeType":"VariableDeclaration","scope":75677,"src":"38565:18:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75630,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:127"},"returnParameters":{"id":75635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75634,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75677,"src":"38601:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75633,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75696,"nodeType":"FunctionDefinition","src":"39057:124:127","nodes":[],"body":{"id":75695,"nodeType":"Block","src":"39129:52:127","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75684,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75679,"src":"39148:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75685,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"39157:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75687,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75690,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75688,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73274,"src":"39163:1:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75689,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"39167:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75691,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75693,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75683,"id":75694,"nodeType":"Return","src":"39139:35:127"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:127","parameters":{"id":75680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75679,"mutability":"mutable","name":"amount","nameLocation":"39091:6:127","nodeType":"VariableDeclaration","scope":75696,"src":"39083:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75678,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:127"},"returnParameters":{"id":75683,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75682,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75696,"src":"39120:7:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75681,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:127"},"scope":75790,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75714,"nodeType":"FunctionDefinition","src":"39187:137:127","nodes":[],"body":{"id":75713,"nodeType":"Block","src":"39258:66:127","nodes":[],"statements":[{"expression":{"id":75707,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75705,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73288,"src":"39268:5:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75706,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75698,"src":"39276:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75708,"nodeType":"ExpressionStatement","src":"39268:14:127"},{"eventCall":{"arguments":[{"id":75710,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75698,"src":"39310:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75709,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73253,"src":"39297:12:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75711,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75712,"nodeType":"EmitStatement","src":"39292:25:127"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75703,"kind":"modifierInvocation","modifierName":{"id":75700,"name":"onlyPoolManager","nameLocations":["39230:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:127"},"nodeType":"ModifierInvocation","src":"39230:27:127"}],"name":"setDecay","nameLocation":"39196:8:127","parameters":{"id":75699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75698,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:127","nodeType":"VariableDeclaration","scope":75714,"src":"39205:14:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75697,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:127"},"returnParameters":{"id":75704,"nodeType":"ParameterList","parameters":[],"src":"39258:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75732,"nodeType":"FunctionDefinition","src":"39330:155:127","nodes":[],"body":{"id":75731,"nodeType":"Block","src":"39407:78:127","nodes":[],"statements":[{"expression":{"id":75725,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75723,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73290,"src":"39417:8:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75724,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"39428:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75726,"nodeType":"ExpressionStatement","src":"39417:20:127"},{"eventCall":{"arguments":[{"id":75728,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75716,"src":"39468:9:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75727,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73257,"src":"39452:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75730,"nodeType":"EmitStatement","src":"39447:31:127"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75719,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75721,"kind":"modifierInvocation","modifierName":{"id":75718,"name":"onlyPoolManager","nameLocations":["39379:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:127"},"nodeType":"ModifierInvocation","src":"39379:27:127"}],"name":"setMaxRatio","nameLocation":"39339:11:127","parameters":{"id":75717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75716,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:127","nodeType":"VariableDeclaration","scope":75732,"src":"39351:17:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75715,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:127"},"returnParameters":{"id":75722,"nodeType":"ParameterList","parameters":[],"src":"39407:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75750,"nodeType":"FunctionDefinition","src":"39491:143:127","nodes":[],"body":{"id":75749,"nodeType":"Block","src":"39564:70:127","nodes":[],"statements":[{"expression":{"id":75743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75741,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"39574:6:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75742,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75734,"src":"39583:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75744,"nodeType":"ExpressionStatement","src":"39574:16:127"},{"eventCall":{"arguments":[{"id":75746,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75734,"src":"39619:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75745,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73261,"src":"39605:13:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75748,"nodeType":"EmitStatement","src":"39600:27:127"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75737,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75739,"kind":"modifierInvocation","modifierName":{"id":75736,"name":"onlyPoolManager","nameLocations":["39536:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:127"},"nodeType":"ModifierInvocation","src":"39536:27:127"}],"name":"setWeight","nameLocation":"39500:9:127","parameters":{"id":75735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75734,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:127","nodeType":"VariableDeclaration","scope":75750,"src":"39510:15:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75733,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:127"},"returnParameters":{"id":75740,"nodeType":"ParameterList","parameters":[],"src":"39564:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75770,"nodeType":"FunctionDefinition","src":"39640:219:127","nodes":[],"body":{"id":75769,"nodeType":"Block","src":"39735:124:127","nodes":[],"statements":[{"expression":{"id":75763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75759,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"39745:17:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75761,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75752,"src":"39783:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75760,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"39765:17:127","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77913_$","typeString":"type(contract RegistryCommunity)"}},"id":75762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"src":"39745:57:127","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":75764,"nodeType":"ExpressionStatement","src":"39745:57:127"},{"eventCall":{"arguments":[{"id":75766,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75752,"src":"39833:18:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75765,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73265,"src":"39817:15:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75767,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75768,"nodeType":"EmitStatement","src":"39812:40:127"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75755,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75756,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75757,"kind":"modifierInvocation","modifierName":{"id":75754,"name":"onlyPoolManager","nameLocations":["39707:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:127"},"nodeType":"ModifierInvocation","src":"39707:27:127"}],"name":"setRegistryCommunity","nameLocation":"39649:20:127","parameters":{"id":75753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75752,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:127","nodeType":"VariableDeclaration","scope":75770,"src":"39670:26:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75751,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:127"},"returnParameters":{"id":75758,"nodeType":"ParameterList","parameters":[],"src":"39735:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75789,"nodeType":"FunctionDefinition","src":"39865:237:127","nodes":[],"body":{"id":75788,"nodeType":"Block","src":"39962:140:127","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75780,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"40003:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75781,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75772,"src":"40024:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75779,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73271,"src":"39977:25:127","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75782,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:127","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75783,"nodeType":"EmitStatement","src":"39972:72:127"},{"expression":{"id":75786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75784,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"40054:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75785,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75772,"src":"40076:19:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75787,"nodeType":"ExpressionStatement","src":"40054:41:127"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:127","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:127","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:127","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75777,"kind":"modifierInvocation","modifierName":{"id":75774,"name":"onlyPoolManager","nameLocations":["39934:15:127"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:127"},"nodeType":"ModifierInvocation","src":"39934:27:127"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:127","parameters":{"id":75773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75772,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:127","nodeType":"VariableDeclaration","scope":75789,"src":"39896:27:127","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75771,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:127","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:127"},"returnParameters":{"id":75778,"nodeType":"ParameterList","parameters":[],"src":"39962:0:127"},"scope":75790,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":73114,"name":"BaseStrategy","nameLocations":["2845:12:127"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:127"},"id":73115,"nodeType":"InheritanceSpecifier","src":"2845:12:127"},{"baseName":{"id":73116,"name":"IPointStrategy","nameLocations":["2859:14:127"],"nodeType":"IdentifierPath","referencedDeclaration":73022,"src":"2859:14:127"},"id":73117,"nodeType":"InheritanceSpecifier","src":"2859:14:127"},{"baseName":{"id":73118,"name":"ERC165","nameLocations":["2875:6:127"],"nodeType":"IdentifierPath","referencedDeclaration":58322,"src":"2875:6:127"},"id":73119,"nodeType":"InheritanceSpecifier","src":"2875:6:127"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75790,58322,58528,73022,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:127","scope":75791,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,73124,73126,73128,73130,73132,73134,73136,73138,73140,73142,73144,73152,73154,73156,73162,73164,73166,73170,73174,73180,73182,73184,73192]}],"license":"AGPL-3.0-only"},"id":127} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json b/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json index 837278d0f..cbe556351 100644 --- a/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json +++ b/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PERCENTAGE_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"},{"name":"decay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getParams","inputs":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"pure"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadata","inputs":[],"outputs":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_id1","inputs":[{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"pool_admin","type":"address","internalType":"address"},{"name":"pool_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60016080908152610120604052602e60c081815260a09162001e2d60e0399052805160099081556020820151600a906200003a9082620000f6565b5050503480156200004a57600080fd5b50620001c2565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007c57607f821691505b6020821081036200009d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f157600081815260208120601f850160051c81016020861015620000cc5750805b601f850160051c820191505b81811015620000ed57828155600101620000d8565b5050505b505050565b81516001600160401b0381111562000112576200011262000051565b6200012a8162000123845462000067565b84620000a3565b602080601f831160018114620001625760008415620001495750858301515b600019600386901b1c1916600185901b178555620000ed565b600085815260208120601f198616915b82811015620001935788860151825594840194600190910190840162000172565b5085821015620001b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c5b80620001d26000396000f3fe608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea26469706673582212205fa132fe67024461a8b02ebb1b93477c46d51d48fa9c575fe934a6afb258bedb64736f6c63430008130033516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","sourceMap":"608:1:116:-:0;508:5347;588:82;;;;508:5347;588:82;;;;;;;;;;;;;561:109;;;;;;;;;;;;;;;;:::i;:::-;;;;508:5347;;;;;;;;;;;;14:127:123;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:123;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:123;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:123;;;2580:26;2531:89;-1:-1:-1;;1335:1:123;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:123;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:123;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:123;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:123:o;:::-;508:5347:116;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea26469706673582212205fa132fe67024461a8b02ebb1b93477c46d51d48fa9c575fe934a6afb258bedb64736f6c63430008130033","sourceMap":"508:5347:116:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:45;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:123;;;160:74;;148:2;133:18;1763:107:45;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;699:43:116:-;;734:8;699:43;;;;;391:25:123;;;379:2;364:18;699:43:116;245:177:123;1093:437:116;;;;;;:::i;:::-;;:::i;561:109::-;;;:::i;:::-;;;;;;;;:::i;748:50::-;;791:7;748:50;;1331:118:45;;;:::i;:::-;;;;;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;1876:107::-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1536:1088:116:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1989:232:45:-;;;:::i;2673:113::-;;;:::i;439:101::-;;;:::i;1537:::-;;;:::i;3485:113::-;;;:::i;4412:75:9:-;;4445:42;4412:75;;3604:241:45;;;:::i;3938:101::-;;;:::i;1644:113::-;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;4078:543:116:-;;;;;;:::i;:::-;;:::i;546:124:45:-;;;:::i;324:109::-;;;:::i;5475:378:116:-;;;;;;:::i;:::-;;:::i;2630:1442::-;;;;;;:::i;:::-;;:::i;3241:119:45:-;;;:::i;1763:107::-;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;1093:437:116:-;1265:16;;1238:7;;1261:230;;1391:48;;;;;;;;1411:1;1391:48;;;;;;;;;;;;;;;;;;;;;;;;1330:150;;;;;-1:-1:-1;;;;;1330:22:116;;;;;:150;;1370:1;;1441:10;;1453:13;;1330:150;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1311:16;:169;1261:230;-1:-1:-1;1507:16:116;;1093:437;;;;;:::o;561:109::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1331:118:45:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:45;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;1876:107::-;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:45;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:45;;;-1:-1:-1;;;;;2926:32:45;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:45;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:45:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1536:1088:116:-;1776:45;;:::i;:::-;1899:30;1913:15;1899:13;:30::i;:::-;1884:12;;;:45;2046:24;2060:9;2046:13;:24::i;:::-;2028:15;;;:42;2115:26;2129:11;2115:13;:26::i;:::-;2099:13;;;:42;-1:-1:-1;;;;;2238:44:116;;;;2292:19;;;2314:12;2292:34;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2336:18:116;;;2357:11;2336:32;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2383:21:116;;;:26;2379:197;;2551:14;734:8;2551:3;:14;:::i;:::-;2527:38;;2379:197;2585:18;;;:32;;;;:6;1536:1088;-1:-1:-1;;;1536:1088:116:o;1989:232:45:-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:45;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:45;;;-1:-1:-1;;;;;2120:29:45;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;1537:101::-;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3604:241::-;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:45;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:45;;;-1:-1:-1;;;;;3738:32:45;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;1644:113::-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;4078:543:116:-;4349:14;4382:232;4406:4;4424:8;4446:17;4477:8;4499:5;4518:12;4544:11;4569:35;;;;;;;;4602:1;4569:35;;;4382:10;:232::i;:::-;4375:239;4078:543;-1:-1:-1;;;;;;;;4078:543:116:o;546:124:45:-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;5475:378:116:-;5625:7;5660:11;5625:7;5701:27;5706:18;975:7;5716:3;5707:12;;;5706:18;:::i;:::-;5726:1;5701:4;:27::i;:::-;5681:47;-1:-1:-1;5843:3:116;881:8;5816:9;5820:5;975:7;5816:9;:::i;:::-;5792:19;5802:9;-1:-1:-1;;;5792:19:116;:::i;:::-;5774:14;975:7;5774:10;:14;:::i;:::-;:38;;;;:::i;:::-;:52;;;;:::i;:::-;5748:21;5760:9;5748;:21;:::i;:::-;5747:80;;;;:::i;:::-;5746:92;;;;:::i;:::-;5745:101;;;5475:378;-1:-1:-1;;;;;;;5475:378:116:o;2630:1442::-;2962:14;3039:45;3099:68;3109:17;3128:12;3142:11;3155;3099:9;:68::i;:::-;3212:16;;;3226:1;3212:16;;;;;;;;3039:128;;-1:-1:-1;3178:31:116;;3212:16;;;;;;;;;;;;-1:-1:-1;3212:16:116;3178:50;;3266:4;3238:14;3253:1;3238:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;3238:33:116;;;-1:-1:-1;;;;;3238:33:116;;;;;3309:10;3281:14;3296:1;3281:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3281:39:116;;;:17;;;;;;;;;:39;4445:42:9;;3607:19:116;;;3603:64;;-1:-1:-1;3651:5:116;3603:64;3685:4;-1:-1:-1;;;;;3685:33:116;;3773:55;3789:8;3799:12;:10;:12::i;:::-;3813:14;3773:15;:55::i;:::-;3850:8;3884:6;3873:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3905:6;3925:1;3940:8;3962:14;3685:301;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3676:310;;4052:12;4004:60;;;;;;;;:::i;:::-;4023:8;-1:-1:-1;;;;;4004:42:116;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;;3997:68;;;;:::i;:::-;2978:1094;;;2630:1442;;;;;;;;;;:::o;3241:119:45:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:55;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:55;20439:125;-1:-1:-1;;20439:125:55:o;4627:114:116:-;4690:7;4716:18;4726:8;4716:7;:18;:::i;:::-;4709:25;4627:114;-1:-1:-1;;4627:114:116:o;5022:447::-;5083:15;-1:-1:-1;;;5118:2:116;:12;5110:53;;;;-1:-1:-1;;;5110:53:116;;16523:2:123;5110:53:116;;;16505:21:123;16562:2;16542:18;;;16535:30;16601;16581:18;;;16574:58;16649:18;;5110:53:116;;;;;;;;;-1:-1:-1;;;;5185:2:116;5209;5248:215;5255:5;;5248:215;;5280:1;5284;5280:5;5289:1;5280:10;5276:177;;5314:10;5319:1;5322;5314:4;:10::i;:::-;5310:14;-1:-1:-1;5348:1:116;5342:7;5248:215;;5276:177;5398:16;5403:7;5412:1;5398:4;:16::i;:::-;5388:26;-1:-1:-1;5432:6:116;5437:1;5432:6;;:::i;:::-;;;5248:215;;;5100:369;;5022:447;;;;:::o;20158:242:55:-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:55;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:123;;;20293:33:55;-1:-1:-1;20344:7:55;;;;364:18:123;;20344:19:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:55;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;4747:269:116:-;4808:15;-1:-1:-1;;;4843:2:116;:13;;4835:66;;;;-1:-1:-1;;;4835:66:116;;17786:2:123;4835:66:116;;;17768:21:123;17825:2;17805:18;;;17798:30;17864:34;17844:18;;;17837:62;17935:10;17915:18;;;17908:38;17963:19;;4835:66:116;17584:404:123;4835:66:116;-1:-1:-1;;;4919:2:116;:12;4911:53;;;;-1:-1:-1;;;4911:53:116;;18195:2:123;4911:53:116;;;18177:21:123;18234:2;18214:18;;;18207:30;18273;18253:18;;;18246:58;18321:18;;4911:53:116;17993:352:123;4911:53:116;5006:3;881:8;4983:7;4988:2;4983;:7;:::i;:::-;4982:19;;;;:::i;:::-;4981:28;;;4747:269;-1:-1:-1;;;4747:269:116:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;427:165:123:-;-1:-1:-1;;;;;517:5:123;513:54;506:5;503:65;493:93;;582:1;579;572:12;493:93;427:165;:::o;597:184::-;-1:-1:-1;;;646:1:123;639:88;746:4;743:1;736:15;770:4;767:1;760:15;786:275;857:2;851:9;922:2;903:13;;-1:-1:-1;;899:27:123;887:40;;957:18;942:34;;978:22;;;939:62;936:88;;;1004:18;;:::i;:::-;1040:2;1033:22;786:275;;-1:-1:-1;786:275:123:o;1066:1354::-;1186:6;1194;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:42;1365:5;1329:42;:::i;:::-;1390:5;-1:-1:-1;1414:2:123;1453:18;;;1440:32;1481:44;1440:32;1481:44;:::i;:::-;1544:7;-1:-1:-1;1602:2:123;1587:18;;1574:32;1625:18;1655:14;;;1652:34;;;1682:1;1679;1672:12;1652:34;1720:6;1709:9;1705:22;1695:32;;1765:7;1758:4;1754:2;1750:13;1746:27;1736:55;;1787:1;1784;1777:12;1736:55;1823:2;1810:16;1845:2;1841;1838:10;1835:36;;;1851:18;;:::i;:::-;1897:2;1894:1;1890:10;1880:20;;1920:28;1944:2;1940;1936:11;1920:28;:::i;:::-;1982:15;;;2052:11;;;2048:20;;;2013:12;;;;2080:19;;;2077:39;;;2112:1;2109;2102:12;2077:39;2136:11;;;;2156:234;2172:6;2167:3;2164:15;2156:234;;;2254:3;2241:17;2226:32;;2271:44;2307:7;2271:44;:::i;:::-;2328:20;;;2189:12;;;;2368;;;;2156:234;;;2409:5;2399:15;;;;;;;;1066:1354;;;;;:::o;2762:250::-;2847:1;2857:113;2871:6;2868:1;2865:13;2857:113;;;2947:11;;;2941:18;2928:11;;;2921:39;2893:2;2886:10;2857:113;;;-1:-1:-1;;3004:1:123;2986:16;;2979:27;2762:250::o;3017:271::-;3059:3;3097:5;3091:12;3124:6;3119:3;3112:19;3140:76;3209:6;3202:4;3197:3;3193:14;3186:4;3179:5;3175:16;3140:76;:::i;:::-;3270:2;3249:15;-1:-1:-1;;3245:29:123;3236:39;;;;3277:4;3232:50;;3017:271;-1:-1:-1;;3017:271:123:o;3293:291::-;3470:6;3459:9;3452:25;3513:2;3508;3497:9;3493:18;3486:30;3433:4;3533:45;3574:2;3563:9;3559:18;3551:6;3533:45;:::i;:::-;3525:53;3293:291;-1:-1:-1;;;;3293:291:123:o;3589:484::-;3642:3;3680:5;3674:12;3707:6;3702:3;3695:19;3733:4;3762:2;3757:3;3753:12;3746:19;;3799:2;3792:5;3788:14;3820:1;3830:218;3844:6;3841:1;3838:13;3830:218;;;3909:13;;-1:-1:-1;;;;;3905:62:123;3893:75;;3988:12;;;;4023:15;;;;3866:1;3859:9;3830:218;;;-1:-1:-1;4064:3:123;;3589:484;-1:-1:-1;;;;;3589:484:123:o;4078:261::-;4257:2;4246:9;4239:21;4220:4;4277:56;4329:2;4318:9;4314:18;4306:6;4277:56;:::i;:::-;4269:64;4078:261;-1:-1:-1;;;4078:261:123:o;4344:111::-;4429:1;4422:5;4419:12;4409:40;;4445:1;4442;4435:12;4460:152;4537:20;;4586:1;4576:12;;4566:40;;4602:1;4599;4592:12;4566:40;4460:152;;;:::o;4617:416::-;4681:5;4729:4;4717:9;4712:3;4708:19;4704:30;4701:50;;;4747:1;4744;4737:12;4701:50;4780:2;4774:9;4822:4;4814:6;4810:17;4893:6;4881:10;4878:22;4857:18;4845:10;4842:34;4839:62;4836:88;;;4904:18;;:::i;:::-;4940:2;4933:22;5003:23;;4988:39;;-1:-1:-1;4973:6:123;4617:416;-1:-1:-1;4617:416:123:o;5038:664::-;5195:6;5203;5211;5219;5272:3;5260:9;5251:7;5247:23;5243:33;5240:53;;;5289:1;5286;5279:12;5240:53;5328:9;5315:23;5347:42;5383:5;5347:42;:::i;:::-;5408:5;-1:-1:-1;5465:2:123;5450:18;;5437:32;5478:43;5437:32;5478:43;:::i;:::-;5540:7;-1:-1:-1;5566:47:123;5609:2;5594:18;;5566:47;:::i;:::-;5556:57;;5632:64;5688:7;5683:2;5672:9;5668:18;5632:64;:::i;:::-;5622:74;;5038:664;;;;;;;:::o;5707:184::-;-1:-1:-1;;;5756:1:123;5749:88;5856:4;5853:1;5846:15;5880:4;5877:1;5870:15;5896:142;5979:1;5972:5;5969:12;5959:46;;5985:18;;:::i;:::-;6014;;5896:142::o;6344:1140::-;6506:4;6548:3;6537:9;6533:19;6525:27;;-1:-1:-1;;;;;6589:6:123;6583:13;6579:62;6568:9;6561:81;6698:4;6690:6;6686:17;6680:24;6673:4;6662:9;6658:20;6651:54;6761:4;6753:6;6749:17;6743:24;6736:4;6725:9;6721:20;6714:54;6824:4;6816:6;6812:17;6806:24;6799:4;6788:9;6784:20;6777:54;6887:4;6879:6;6875:17;6869:24;6862:4;6851:9;6847:20;6840:54;6941:4;6933:6;6929:17;6923:24;6983:1;6969:12;6966:19;6956:53;;6989:18;;:::i;:::-;7047:12;7040:4;7029:9;7025:20;7018:42;;7109:4;7101:6;7097:17;7091:24;7124:65;7183:4;7172:9;7168:20;7152:14;7124:65;:::i;:::-;;7238:4;7230:6;7226:17;7220:24;7253:73;7320:4;7309:9;7305:20;7289:14;6118:12;6106:25;;6043:90;7253:73;-1:-1:-1;7345:6:123;7388:15;;;7382:22;6219:12;;-1:-1:-1;;;;;6215:61:123;7459:18;;;6203:74;6326:4;6315:16;;6309:23;6293:14;;;6286:47;7413:65;6138:201;7489:1170;7668:6;7676;7684;7692;7700;7708;7716;7769:3;7757:9;7748:7;7744:23;7740:33;7737:53;;;7786:1;7783;7776:12;7737:53;7825:9;7812:23;7844:42;7880:5;7844:42;:::i;:::-;7905:5;-1:-1:-1;7962:2:123;7947:18;;7934:32;7975:44;7934:32;7975:44;:::i;:::-;8038:7;-1:-1:-1;8097:2:123;8082:18;;8069:32;8110:44;8069:32;8110:44;:::i;:::-;8173:7;-1:-1:-1;8232:2:123;8217:18;;8204:32;8245:44;8204:32;8245:44;:::i;:::-;8308:7;-1:-1:-1;8367:3:123;8352:19;;8339:33;8381:44;8339:33;8381:44;:::i;:::-;8444:7;-1:-1:-1;8503:3:123;8488:19;;8475:33;8517:43;8475:33;8517:43;:::i;:::-;8579:7;-1:-1:-1;8605:48:123;8648:3;8633:19;;8605:48;:::i;:::-;8595:58;;7489:1170;;;;;;;;;;:::o;8911:385::-;8997:6;9005;9013;9021;9074:3;9062:9;9053:7;9049:23;9045:33;9042:53;;;9091:1;9088;9081:12;9042:53;-1:-1:-1;;9114:23:123;;;9184:2;9169:18;;9156:32;;-1:-1:-1;9235:2:123;9220:18;;9207:32;;9286:2;9271:18;9258:32;;-1:-1:-1;8911:385:123;-1:-1:-1;8911:385:123:o;9301:1307::-;9525:6;9533;9541;9549;9557;9565;9573;9581;9634:3;9622:9;9613:7;9609:23;9605:33;9602:53;;;9651:1;9648;9641:12;9602:53;9690:9;9677:23;9709:42;9745:5;9709:42;:::i;:::-;9770:5;-1:-1:-1;9827:2:123;9812:18;;9799:32;9840:44;9799:32;9840:44;:::i;:::-;9903:7;-1:-1:-1;9962:2:123;9947:18;;9934:32;9975:44;9934:32;9975:44;:::i;:::-;10038:7;-1:-1:-1;10097:2:123;10082:18;;10069:32;10110:44;10069:32;10110:44;:::i;:::-;10173:7;-1:-1:-1;10232:3:123;10217:19;;10204:33;10246:44;10204:33;10246:44;:::i;:::-;10309:7;-1:-1:-1;10368:3:123;10353:19;;10340:33;10382:43;10340:33;10382:43;:::i;:::-;10444:7;-1:-1:-1;10470:48:123;10513:3;10498:19;;10470:48;:::i;:::-;10460:58;;10537:65;10594:7;10588:3;10577:9;10573:19;10537:65;:::i;:::-;10527:75;;9301:1307;;;;;;;;;;;:::o;10613:1032::-;11037:6;11026:9;11019:25;11080:3;11075:2;11064:9;11060:18;11053:31;11121:2;11115:3;11104:9;11100:19;11093:31;11161:16;11155:3;11144:9;11140:19;11133:45;11214:3;11209:2;11198:9;11194:18;11187:31;11261:6;11255:13;11249:3;11238:9;11234:19;11227:42;11000:4;11316:2;11308:6;11304:15;11298:22;11357:2;11351:3;11340:9;11336:19;11329:31;11380:52;11427:3;11416:9;11412:19;11398:12;11380:52;:::i;:::-;11369:63;;-1:-1:-1;;;;;11472:6:123;11468:55;11463:2;11452:9;11448:18;11441:83;11570:9;11565:3;11561:19;11555:3;11544:9;11540:19;11533:48;11598:41;11635:3;11627:6;11598:41;:::i;:::-;11590:49;10613:1032;-1:-1:-1;;;;;;;10613:1032:123:o;11650:184::-;11720:6;11773:2;11761:9;11752:7;11748:23;11744:32;11741:52;;;11789:1;11786;11779:12;11741:52;-1:-1:-1;11812:16:123;;11650:184;-1:-1:-1;11650:184:123:o;11839:437::-;11918:1;11914:12;;;;11961;;;11982:61;;12036:4;12028:6;12024:17;12014:27;;11982:61;12089:2;12081:6;12078:14;12058:18;12055:38;12052:218;;-1:-1:-1;;;12123:1:123;12116:88;12227:4;12224:1;12217:15;12255:4;12252:1;12245:15;12052:218;;11839:437;;;:::o;12281:184::-;-1:-1:-1;;;12330:1:123;12323:88;12430:4;12427:1;12420:15;12454:4;12451:1;12444:15;12470:184;-1:-1:-1;;;12519:1:123;12512:88;12619:4;12616:1;12609:15;12643:4;12640:1;12633:15;12659:168;12732:9;;;12763;;12780:15;;;12774:22;;12760:37;12750:71;;12801:18;;:::i;12832:274::-;12872:1;12898;12888:189;;-1:-1:-1;;;12930:1:123;12923:88;13034:4;13031:1;13024:15;13062:4;13059:1;13052:15;12888:189;-1:-1:-1;13091:9:123;;12832:274::o;13111:128::-;13178:9;;;13199:11;;;13196:37;;;13213:18;;:::i;13244:125::-;13309:9;;;13330:10;;;13327:36;;;13343:18;;:::i;13500:2154::-;13922:6;13911:9;13904:25;13885:4;13948:2;-1:-1:-1;;;;;14059:2:123;14051:6;14047:15;14042:2;14031:9;14027:18;14020:43;14099:3;14094:2;14083:9;14079:18;14072:31;14126:46;14167:3;14156:9;14152:19;14144:6;14126:46;:::i;:::-;14220:2;14212:6;14208:15;14203:2;14192:9;14188:18;14181:43;14261:6;14255:3;14244:9;14240:19;14233:35;14317:9;14309:6;14305:22;14299:3;14288:9;14284:19;14277:51;14358:6;14352:13;14344:6;14337:29;14385:4;14375:14;;14430:2;14422:6;14418:15;14466:2;14461;14453:6;14449:15;14442:27;14489:1;14522:12;14516:19;14558:3;14588:9;14584:2;14580:18;14570:28;;14648:2;14637:9;14633:18;14670;14660:61;;14714:4;14706:6;14702:17;14692:27;;14660:61;14767:2;14759:6;14756:14;14736:18;14733:38;14730:222;;-1:-1:-1;;;14801:3:123;14794:90;14907:4;14904:1;14897:15;14937:4;14932:3;14925:17;14730:222;15020:2;15008:15;;2694:19;;;2737:14;;;14961:71;-1:-1:-1;15048:18:123;15075:128;;;;15217:1;15212:321;;;;15041:492;;15075:128;-1:-1:-1;;15108:24:123;;15096:37;;15176:14;;15169:22;15166:1;15162:30;15153:40;;;-1:-1:-1;15075:128:123;;15212:321;13447:1;13440:14;;;13484:4;13471:18;;15313:1;15327:165;15341:6;15338:1;15335:13;15327:165;;;15419:14;;15406:11;;;15399:35;15462:16;;;;15356:10;;15327:165;;;15512:11;;;-1:-1:-1;;15041:492:123;;;;;15579:9;15574:3;15570:19;15564:3;15553:9;15549:19;15542:48;15607:41;15644:3;15636:6;15607:41;:::i;:::-;15599:49;13500:2154;-1:-1:-1;;;;;;;;;;;;;;13500:2154:123:o;15848:279::-;15936:6;15989:2;15977:9;15968:7;15964:23;15960:32;15957:52;;;16005:1;16002;15995:12;15957:52;16037:9;16031:16;16056:41;16091:5;16056:41;:::i;16132:184::-;-1:-1:-1;;;16181:1:123;16174:88;16281:4;16278:1;16271:15;16305:4;16302:1;16295:15;16678:289;16809:3;16847:6;16841:13;16863:66;16922:6;16917:3;16910:4;16902:6;16898:17;16863:66;:::i;:::-;16945:16;;;;;16678:289;-1:-1:-1;;16678:289:123:o;16972:262::-;17042:6;17095:2;17083:9;17074:7;17070:23;17066:32;17063:52;;;17111:1;17108;17101:12;17063:52;17143:9;17137:16;17162:42;17198:5;17162:42;:::i;17239:340::-;-1:-1:-1;;;;;17420:6:123;17416:55;17405:9;17398:74;17508:2;17503;17492:9;17488:18;17481:30;17379:4;17528:45;17569:2;17558:9;17554:18;17546:6;17528:45;:::i","linkReferences":{}},"methodIdentifiers":{"DECIMALS()":"2e0f2625","NATIVE()":"a0cf0aea","PERCENTAGE_SCALE()":"3f26479e","_calculateConviction(uint256,uint256,uint256,uint256)":"e99ce911","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","createPool(address,address,address,address,address,uint8,uint8)":"d8c12dc2","createPool(address,address,address,address,address,uint8,uint8,(uint256))":"ed62303a","getParams(address,uint8,uint8,(uint256))":"770b2e66","local()":"0f166ad4","metadata()":"392f37e9","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_id1(address,address,address[])":"37d1c404","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry_owner()":"dac4eb16"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERCENTAGE_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"_calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"getParams\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool_admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"pool_managers\",\"type\":\"address[]\"}],\"name\":\"poolProfile_id1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/CVStrategyHelpers.sol\":\"CVStrategyHelpers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709\",\"dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0xb82ef33f43b6b96109687d91b39c94573fdccaaa423fe28e8ba0977b31c023e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec9c629f63e66379f9c868a74f971064701cc6e30583872aa653f8b932518025\",\"dweb:/ipfs/QmY4MnZF2VMFwJkAwpdQwxEWA3KcGbNBKEmAVYePMVQWUR\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/test/CVStrategyHelpers.sol\":{\"keccak256\":\"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc\",\"dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERCENTAGE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"},{"internalType":"uint256","name":"decay","type":"uint256"}],"stateMutability":"pure","type":"function","name":"_calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"getParams","outputs":[{"internalType":"struct StrategyStruct.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metadata","outputs":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"pool_admin","type":"address"},{"internalType":"address[]","name":"pool_managers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"poolProfile_id1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/CVStrategyHelpers.sol":"CVStrategyHelpers"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831","urls":["bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709","dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0xb82ef33f43b6b96109687d91b39c94573fdccaaa423fe28e8ba0977b31c023e0","urls":["bzz-raw://ec9c629f63e66379f9c868a74f971064701cc6e30583872aa653f8b932518025","dweb:/ipfs/QmY4MnZF2VMFwJkAwpdQwxEWA3KcGbNBKEmAVYePMVQWUR"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/test/CVStrategyHelpers.sol":{"keccak256":"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24","urls":["bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc","dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3"],"license":"AGPL-3.0-or-later"}},"version":1},"id":116} \ No newline at end of file +{"abi":[{"type":"function","name":"DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PERCENTAGE_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"},{"name":"decay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getParams","inputs":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"pure"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadata","inputs":[],"outputs":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_id1","inputs":[{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"pool_admin","type":"address","internalType":"address"},{"name":"pool_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60016080908152610120604052602e60c081815260a09162001e2d60e0399052805160099081556020820151600a906200003a9082620000f6565b5050503480156200004a57600080fd5b50620001c2565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007c57607f821691505b6020821081036200009d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f157600081815260208120601f850160051c81016020861015620000cc5750805b601f850160051c820191505b81811015620000ed57828155600101620000d8565b5050505b505050565b81516001600160401b0381111562000112576200011262000051565b6200012a8162000123845462000067565b84620000a3565b602080601f831160018114620001625760008415620001495750858301515b600019600386901b1c1916600185901b178555620000ed565b600085815260208120601f198616915b82811015620001935788860151825594840194600190910190840162000172565b5085821015620001b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c5b80620001d26000396000f3fe608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea2646970667358221220f7d3279aa80e4d7d8252b64ce4bdb9cf494172e18b9e1d4518ca058060949d4164736f6c63430008130033516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","sourceMap":"608:1:136:-:0;508:5347;588:82;;;;508:5347;588:82;;;;;;;;;;;;;561:109;;;;;;;;;;;;;;;;:::i;:::-;;;;508:5347;;;;;;;;;;;;14:127:144;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:144;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:144;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:144;;;2580:26;2531:89;-1:-1:-1;;1335:1:144;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:144;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:144;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:144;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:144:o;:::-;508:5347:136;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea2646970667358221220f7d3279aa80e4d7d8252b64ce4bdb9cf494172e18b9e1d4518ca058060949d4164736f6c63430008130033","sourceMap":"508:5347:136:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:144;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;699:43:136:-;;734:8;699:43;;;;;391:25:144;;;379:2;364:18;699:43:136;245:177:144;1093:437:136;;;;;;:::i;:::-;;:::i;561:109::-;;;:::i;:::-;;;;;;;;:::i;748:50::-;;791:7;748:50;;1331:118:15;;;:::i;:::-;;;;;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;1876:107::-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1536:1088:136:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1989:232:15:-;;;:::i;2673:113::-;;;:::i;439:101::-;;;:::i;1537:::-;;;:::i;3485:113::-;;;:::i;4412:75:9:-;;4445:42;4412:75;;3604:241:15;;;:::i;3938:101::-;;;:::i;1644:113::-;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;4078:543:136:-;;;;;;:::i;:::-;;:::i;546:124:15:-;;;:::i;324:109::-;;;:::i;5475:378:136:-;;;;;;:::i;:::-;;:::i;2630:1442::-;;;;;;:::i;:::-;;:::i;3241:119:15:-;;;:::i;1763:107::-;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;1093:437:136:-;1265:16;;1238:7;;1261:230;;1391:48;;;;;;;;1411:1;1391:48;;;;;;;;;;;;;;;;;;;;;;;;1330:150;;;;;-1:-1:-1;;;;;1330:22:136;;;;;:150;;1370:1;;1441:10;;1453:13;;1330:150;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1311:16;:169;1261:230;-1:-1:-1;1507:16:136;;1093:437;;;;;:::o;561:109::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;1876:107::-;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1536:1088:136:-;1776:45;;:::i;:::-;1899:30;1913:15;1899:13;:30::i;:::-;1884:12;;;:45;2046:24;2060:9;2046:13;:24::i;:::-;2028:15;;;:42;2115:26;2129:11;2115:13;:26::i;:::-;2099:13;;;:42;-1:-1:-1;;;;;2238:44:136;;;;2292:19;;;2314:12;2292:34;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2336:18:136;;;2357:11;2336:32;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2383:21:136;;;:26;2379:197;;2551:14;734:8;2551:3;:14;:::i;:::-;2527:38;;2379:197;2585:18;;;:32;;;;:6;1536:1088;-1:-1:-1;;;1536:1088:136:o;1989:232:15:-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;1537:101::-;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3604:241::-;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;1644:113::-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;4078:543:136:-;4349:14;4382:232;4406:4;4424:8;4446:17;4477:8;4499:5;4518:12;4544:11;4569:35;;;;;;;;4602:1;4569:35;;;4382:10;:232::i;:::-;4375:239;4078:543;-1:-1:-1;;;;;;;;4078:543:136:o;546:124:15:-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;5475:378:136:-;5625:7;5660:11;5625:7;5701:27;5706:18;975:7;5716:3;5707:12;;;5706:18;:::i;:::-;5726:1;5701:4;:27::i;:::-;5681:47;-1:-1:-1;5843:3:136;881:8;5816:9;5820:5;975:7;5816:9;:::i;:::-;5792:19;5802:9;-1:-1:-1;;;5792:19:136;:::i;:::-;5774:14;975:7;5774:10;:14;:::i;:::-;:38;;;;:::i;:::-;:52;;;;:::i;:::-;5748:21;5760:9;5748;:21;:::i;:::-;5747:80;;;;:::i;:::-;5746:92;;;;:::i;:::-;5745:101;;;5475:378;-1:-1:-1;;;;;;;5475:378:136:o;2630:1442::-;2962:14;3039:45;3099:68;3109:17;3128:12;3142:11;3155;3099:9;:68::i;:::-;3212:16;;;3226:1;3212:16;;;;;;;;3039:128;;-1:-1:-1;3178:31:136;;3212:16;;;;;;;;;;;;-1:-1:-1;3212:16:136;3178:50;;3266:4;3238:14;3253:1;3238:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;3238:33:136;;;-1:-1:-1;;;;;3238:33:136;;;;;3309:10;3281:14;3296:1;3281:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3281:39:136;;;:17;;;;;;;;;:39;4445:42:9;;3607:19:136;;;3603:64;;-1:-1:-1;3651:5:136;3603:64;3685:4;-1:-1:-1;;;;;3685:33:136;;3773:55;3789:8;3799:12;:10;:12::i;:::-;3813:14;3773:15;:55::i;:::-;3850:8;3884:6;3873:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3905:6;3925:1;3940:8;3962:14;3685:301;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3676:310;;4052:12;4004:60;;;;;;;;:::i;:::-;4023:8;-1:-1:-1;;;;;4004:42:136;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;;3997:68;;;;:::i;:::-;2978:1094;;;2630:1442;;;;;;;;;;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:25;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:25;20439:125;-1:-1:-1;;20439:125:25:o;4627:114:136:-;4690:7;4716:18;4726:8;4716:7;:18;:::i;:::-;4709:25;4627:114;-1:-1:-1;;4627:114:136:o;5022:447::-;5083:15;-1:-1:-1;;;5118:2:136;:12;5110:53;;;;-1:-1:-1;;;5110:53:136;;16523:2:144;5110:53:136;;;16505:21:144;16562:2;16542:18;;;16535:30;16601;16581:18;;;16574:58;16649:18;;5110:53:136;;;;;;;;;-1:-1:-1;;;;5185:2:136;5209;5248:215;5255:5;;5248:215;;5280:1;5284;5280:5;5289:1;5280:10;5276:177;;5314:10;5319:1;5322;5314:4;:10::i;:::-;5310:14;-1:-1:-1;5348:1:136;5342:7;5248:215;;5276:177;5398:16;5403:7;5412:1;5398:4;:16::i;:::-;5388:26;-1:-1:-1;5432:6:136;5437:1;5432:6;;:::i;:::-;;;5248:215;;;5100:369;;5022:447;;;;:::o;20158:242:25:-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:25;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:144;;;20293:33:25;-1:-1:-1;20344:7:25;;;;364:18:144;;20344:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:25;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;4747:269:136:-;4808:15;-1:-1:-1;;;4843:2:136;:13;;4835:66;;;;-1:-1:-1;;;4835:66:136;;17786:2:144;4835:66:136;;;17768:21:144;17825:2;17805:18;;;17798:30;17864:34;17844:18;;;17837:62;17935:10;17915:18;;;17908:38;17963:19;;4835:66:136;17584:404:144;4835:66:136;-1:-1:-1;;;4919:2:136;:12;4911:53;;;;-1:-1:-1;;;4911:53:136;;18195:2:144;4911:53:136;;;18177:21:144;18234:2;18214:18;;;18207:30;18273;18253:18;;;18246:58;18321:18;;4911:53:136;17993:352:144;4911:53:136;5006:3;881:8;4983:7;4988:2;4983;:7;:::i;:::-;4982:19;;;;:::i;:::-;4981:28;;;4747:269;-1:-1:-1;;;4747:269:136:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;427:165:144:-;-1:-1:-1;;;;;517:5:144;513:54;506:5;503:65;493:93;;582:1;579;572:12;493:93;427:165;:::o;597:184::-;-1:-1:-1;;;646:1:144;639:88;746:4;743:1;736:15;770:4;767:1;760:15;786:275;857:2;851:9;922:2;903:13;;-1:-1:-1;;899:27:144;887:40;;957:18;942:34;;978:22;;;939:62;936:88;;;1004:18;;:::i;:::-;1040:2;1033:22;786:275;;-1:-1:-1;786:275:144:o;1066:1354::-;1186:6;1194;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:42;1365:5;1329:42;:::i;:::-;1390:5;-1:-1:-1;1414:2:144;1453:18;;;1440:32;1481:44;1440:32;1481:44;:::i;:::-;1544:7;-1:-1:-1;1602:2:144;1587:18;;1574:32;1625:18;1655:14;;;1652:34;;;1682:1;1679;1672:12;1652:34;1720:6;1709:9;1705:22;1695:32;;1765:7;1758:4;1754:2;1750:13;1746:27;1736:55;;1787:1;1784;1777:12;1736:55;1823:2;1810:16;1845:2;1841;1838:10;1835:36;;;1851:18;;:::i;:::-;1897:2;1894:1;1890:10;1880:20;;1920:28;1944:2;1940;1936:11;1920:28;:::i;:::-;1982:15;;;2052:11;;;2048:20;;;2013:12;;;;2080:19;;;2077:39;;;2112:1;2109;2102:12;2077:39;2136:11;;;;2156:234;2172:6;2167:3;2164:15;2156:234;;;2254:3;2241:17;2226:32;;2271:44;2307:7;2271:44;:::i;:::-;2328:20;;;2189:12;;;;2368;;;;2156:234;;;2409:5;2399:15;;;;;;;;1066:1354;;;;;:::o;2762:250::-;2847:1;2857:113;2871:6;2868:1;2865:13;2857:113;;;2947:11;;;2941:18;2928:11;;;2921:39;2893:2;2886:10;2857:113;;;-1:-1:-1;;3004:1:144;2986:16;;2979:27;2762:250::o;3017:271::-;3059:3;3097:5;3091:12;3124:6;3119:3;3112:19;3140:76;3209:6;3202:4;3197:3;3193:14;3186:4;3179:5;3175:16;3140:76;:::i;:::-;3270:2;3249:15;-1:-1:-1;;3245:29:144;3236:39;;;;3277:4;3232:50;;3017:271;-1:-1:-1;;3017:271:144:o;3293:291::-;3470:6;3459:9;3452:25;3513:2;3508;3497:9;3493:18;3486:30;3433:4;3533:45;3574:2;3563:9;3559:18;3551:6;3533:45;:::i;:::-;3525:53;3293:291;-1:-1:-1;;;;3293:291:144:o;3589:484::-;3642:3;3680:5;3674:12;3707:6;3702:3;3695:19;3733:4;3762:2;3757:3;3753:12;3746:19;;3799:2;3792:5;3788:14;3820:1;3830:218;3844:6;3841:1;3838:13;3830:218;;;3909:13;;-1:-1:-1;;;;;3905:62:144;3893:75;;3988:12;;;;4023:15;;;;3866:1;3859:9;3830:218;;;-1:-1:-1;4064:3:144;;3589:484;-1:-1:-1;;;;;3589:484:144:o;4078:261::-;4257:2;4246:9;4239:21;4220:4;4277:56;4329:2;4318:9;4314:18;4306:6;4277:56;:::i;:::-;4269:64;4078:261;-1:-1:-1;;;4078:261:144:o;4344:111::-;4429:1;4422:5;4419:12;4409:40;;4445:1;4442;4435:12;4460:152;4537:20;;4586:1;4576:12;;4566:40;;4602:1;4599;4592:12;4566:40;4460:152;;;:::o;4617:416::-;4681:5;4729:4;4717:9;4712:3;4708:19;4704:30;4701:50;;;4747:1;4744;4737:12;4701:50;4780:2;4774:9;4822:4;4814:6;4810:17;4893:6;4881:10;4878:22;4857:18;4845:10;4842:34;4839:62;4836:88;;;4904:18;;:::i;:::-;4940:2;4933:22;5003:23;;4988:39;;-1:-1:-1;4973:6:144;4617:416;-1:-1:-1;4617:416:144:o;5038:664::-;5195:6;5203;5211;5219;5272:3;5260:9;5251:7;5247:23;5243:33;5240:53;;;5289:1;5286;5279:12;5240:53;5328:9;5315:23;5347:42;5383:5;5347:42;:::i;:::-;5408:5;-1:-1:-1;5465:2:144;5450:18;;5437:32;5478:43;5437:32;5478:43;:::i;:::-;5540:7;-1:-1:-1;5566:47:144;5609:2;5594:18;;5566:47;:::i;:::-;5556:57;;5632:64;5688:7;5683:2;5672:9;5668:18;5632:64;:::i;:::-;5622:74;;5038:664;;;;;;;:::o;5707:184::-;-1:-1:-1;;;5756:1:144;5749:88;5856:4;5853:1;5846:15;5880:4;5877:1;5870:15;5896:142;5979:1;5972:5;5969:12;5959:46;;5985:18;;:::i;:::-;6014;;5896:142::o;6344:1140::-;6506:4;6548:3;6537:9;6533:19;6525:27;;-1:-1:-1;;;;;6589:6:144;6583:13;6579:62;6568:9;6561:81;6698:4;6690:6;6686:17;6680:24;6673:4;6662:9;6658:20;6651:54;6761:4;6753:6;6749:17;6743:24;6736:4;6725:9;6721:20;6714:54;6824:4;6816:6;6812:17;6806:24;6799:4;6788:9;6784:20;6777:54;6887:4;6879:6;6875:17;6869:24;6862:4;6851:9;6847:20;6840:54;6941:4;6933:6;6929:17;6923:24;6983:1;6969:12;6966:19;6956:53;;6989:18;;:::i;:::-;7047:12;7040:4;7029:9;7025:20;7018:42;;7109:4;7101:6;7097:17;7091:24;7124:65;7183:4;7172:9;7168:20;7152:14;7124:65;:::i;:::-;;7238:4;7230:6;7226:17;7220:24;7253:73;7320:4;7309:9;7305:20;7289:14;6118:12;6106:25;;6043:90;7253:73;-1:-1:-1;7345:6:144;7388:15;;;7382:22;6219:12;;-1:-1:-1;;;;;6215:61:144;7459:18;;;6203:74;6326:4;6315:16;;6309:23;6293:14;;;6286:47;7413:65;6138:201;7489:1170;7668:6;7676;7684;7692;7700;7708;7716;7769:3;7757:9;7748:7;7744:23;7740:33;7737:53;;;7786:1;7783;7776:12;7737:53;7825:9;7812:23;7844:42;7880:5;7844:42;:::i;:::-;7905:5;-1:-1:-1;7962:2:144;7947:18;;7934:32;7975:44;7934:32;7975:44;:::i;:::-;8038:7;-1:-1:-1;8097:2:144;8082:18;;8069:32;8110:44;8069:32;8110:44;:::i;:::-;8173:7;-1:-1:-1;8232:2:144;8217:18;;8204:32;8245:44;8204:32;8245:44;:::i;:::-;8308:7;-1:-1:-1;8367:3:144;8352:19;;8339:33;8381:44;8339:33;8381:44;:::i;:::-;8444:7;-1:-1:-1;8503:3:144;8488:19;;8475:33;8517:43;8475:33;8517:43;:::i;:::-;8579:7;-1:-1:-1;8605:48:144;8648:3;8633:19;;8605:48;:::i;:::-;8595:58;;7489:1170;;;;;;;;;;:::o;8911:385::-;8997:6;9005;9013;9021;9074:3;9062:9;9053:7;9049:23;9045:33;9042:53;;;9091:1;9088;9081:12;9042:53;-1:-1:-1;;9114:23:144;;;9184:2;9169:18;;9156:32;;-1:-1:-1;9235:2:144;9220:18;;9207:32;;9286:2;9271:18;9258:32;;-1:-1:-1;8911:385:144;-1:-1:-1;8911:385:144:o;9301:1307::-;9525:6;9533;9541;9549;9557;9565;9573;9581;9634:3;9622:9;9613:7;9609:23;9605:33;9602:53;;;9651:1;9648;9641:12;9602:53;9690:9;9677:23;9709:42;9745:5;9709:42;:::i;:::-;9770:5;-1:-1:-1;9827:2:144;9812:18;;9799:32;9840:44;9799:32;9840:44;:::i;:::-;9903:7;-1:-1:-1;9962:2:144;9947:18;;9934:32;9975:44;9934:32;9975:44;:::i;:::-;10038:7;-1:-1:-1;10097:2:144;10082:18;;10069:32;10110:44;10069:32;10110:44;:::i;:::-;10173:7;-1:-1:-1;10232:3:144;10217:19;;10204:33;10246:44;10204:33;10246:44;:::i;:::-;10309:7;-1:-1:-1;10368:3:144;10353:19;;10340:33;10382:43;10340:33;10382:43;:::i;:::-;10444:7;-1:-1:-1;10470:48:144;10513:3;10498:19;;10470:48;:::i;:::-;10460:58;;10537:65;10594:7;10588:3;10577:9;10573:19;10537:65;:::i;:::-;10527:75;;9301:1307;;;;;;;;;;;:::o;10613:1032::-;11037:6;11026:9;11019:25;11080:3;11075:2;11064:9;11060:18;11053:31;11121:2;11115:3;11104:9;11100:19;11093:31;11161:16;11155:3;11144:9;11140:19;11133:45;11214:3;11209:2;11198:9;11194:18;11187:31;11261:6;11255:13;11249:3;11238:9;11234:19;11227:42;11000:4;11316:2;11308:6;11304:15;11298:22;11357:2;11351:3;11340:9;11336:19;11329:31;11380:52;11427:3;11416:9;11412:19;11398:12;11380:52;:::i;:::-;11369:63;;-1:-1:-1;;;;;11472:6:144;11468:55;11463:2;11452:9;11448:18;11441:83;11570:9;11565:3;11561:19;11555:3;11544:9;11540:19;11533:48;11598:41;11635:3;11627:6;11598:41;:::i;:::-;11590:49;10613:1032;-1:-1:-1;;;;;;;10613:1032:144:o;11650:184::-;11720:6;11773:2;11761:9;11752:7;11748:23;11744:32;11741:52;;;11789:1;11786;11779:12;11741:52;-1:-1:-1;11812:16:144;;11650:184;-1:-1:-1;11650:184:144:o;11839:437::-;11918:1;11914:12;;;;11961;;;11982:61;;12036:4;12028:6;12024:17;12014:27;;11982:61;12089:2;12081:6;12078:14;12058:18;12055:38;12052:218;;-1:-1:-1;;;12123:1:144;12116:88;12227:4;12224:1;12217:15;12255:4;12252:1;12245:15;12052:218;;11839:437;;;:::o;12281:184::-;-1:-1:-1;;;12330:1:144;12323:88;12430:4;12427:1;12420:15;12454:4;12451:1;12444:15;12470:184;-1:-1:-1;;;12519:1:144;12512:88;12619:4;12616:1;12609:15;12643:4;12640:1;12633:15;12659:168;12732:9;;;12763;;12780:15;;;12774:22;;12760:37;12750:71;;12801:18;;:::i;12832:274::-;12872:1;12898;12888:189;;-1:-1:-1;;;12930:1:144;12923:88;13034:4;13031:1;13024:15;13062:4;13059:1;13052:15;12888:189;-1:-1:-1;13091:9:144;;12832:274::o;13111:128::-;13178:9;;;13199:11;;;13196:37;;;13213:18;;:::i;13244:125::-;13309:9;;;13330:10;;;13327:36;;;13343:18;;:::i;13500:2154::-;13922:6;13911:9;13904:25;13885:4;13948:2;-1:-1:-1;;;;;14059:2:144;14051:6;14047:15;14042:2;14031:9;14027:18;14020:43;14099:3;14094:2;14083:9;14079:18;14072:31;14126:46;14167:3;14156:9;14152:19;14144:6;14126:46;:::i;:::-;14220:2;14212:6;14208:15;14203:2;14192:9;14188:18;14181:43;14261:6;14255:3;14244:9;14240:19;14233:35;14317:9;14309:6;14305:22;14299:3;14288:9;14284:19;14277:51;14358:6;14352:13;14344:6;14337:29;14385:4;14375:14;;14430:2;14422:6;14418:15;14466:2;14461;14453:6;14449:15;14442:27;14489:1;14522:12;14516:19;14558:3;14588:9;14584:2;14580:18;14570:28;;14648:2;14637:9;14633:18;14670;14660:61;;14714:4;14706:6;14702:17;14692:27;;14660:61;14767:2;14759:6;14756:14;14736:18;14733:38;14730:222;;-1:-1:-1;;;14801:3:144;14794:90;14907:4;14904:1;14897:15;14937:4;14932:3;14925:17;14730:222;15020:2;15008:15;;2694:19;;;2737:14;;;14961:71;-1:-1:-1;15048:18:144;15075:128;;;;15217:1;15212:321;;;;15041:492;;15075:128;-1:-1:-1;;15108:24:144;;15096:37;;15176:14;;15169:22;15166:1;15162:30;15153:40;;;-1:-1:-1;15075:128:144;;15212:321;13447:1;13440:14;;;13484:4;13471:18;;15313:1;15327:165;15341:6;15338:1;15335:13;15327:165;;;15419:14;;15406:11;;;15399:35;15462:16;;;;15356:10;;15327:165;;;15512:11;;;-1:-1:-1;;15041:492:144;;;;;15579:9;15574:3;15570:19;15564:3;15553:9;15549:19;15542:48;15607:41;15644:3;15636:6;15607:41;:::i;:::-;15599:49;13500:2154;-1:-1:-1;;;;;;;;;;;;;;13500:2154:144:o;15848:279::-;15936:6;15989:2;15977:9;15968:7;15964:23;15960:32;15957:52;;;16005:1;16002;15995:12;15957:52;16037:9;16031:16;16056:41;16091:5;16056:41;:::i;16132:184::-;-1:-1:-1;;;16181:1:144;16174:88;16281:4;16278:1;16271:15;16305:4;16302:1;16295:15;16678:289;16809:3;16847:6;16841:13;16863:66;16922:6;16917:3;16910:4;16902:6;16898:17;16863:66;:::i;:::-;16945:16;;;;;16678:289;-1:-1:-1;;16678:289:144:o;16972:262::-;17042:6;17095:2;17083:9;17074:7;17070:23;17066:32;17063:52;;;17111:1;17108;17101:12;17063:52;17143:9;17137:16;17162:42;17198:5;17162:42;:::i;17239:340::-;-1:-1:-1;;;;;17420:6:144;17416:55;17405:9;17398:74;17508:2;17503;17492:9;17488:18;17481:30;17379:4;17528:45;17569:2;17558:9;17554:18;17546:6;17528:45;:::i","linkReferences":{}},"methodIdentifiers":{"DECIMALS()":"2e0f2625","NATIVE()":"a0cf0aea","PERCENTAGE_SCALE()":"3f26479e","_calculateConviction(uint256,uint256,uint256,uint256)":"e99ce911","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","createPool(address,address,address,address,address,uint8,uint8)":"d8c12dc2","createPool(address,address,address,address,address,uint8,uint8,(uint256))":"ed62303a","getParams(address,uint8,uint8,(uint256))":"770b2e66","local()":"0f166ad4","metadata()":"392f37e9","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_id1(address,address,address[])":"37d1c404","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry_owner()":"dac4eb16"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERCENTAGE_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"_calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"getParams\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool_admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"pool_managers\",\"type\":\"address[]\"}],\"name\":\"poolProfile_id1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/CVStrategyHelpers.sol\":\"CVStrategyHelpers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]},\"pkg/contracts/test/CVStrategyHelpers.sol\":{\"keccak256\":\"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc\",\"dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERCENTAGE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"},{"internalType":"uint256","name":"decay","type":"uint256"}],"stateMutability":"pure","type":"function","name":"_calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"getParams","outputs":[{"internalType":"struct StrategyStruct.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metadata","outputs":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"pool_admin","type":"address"},{"internalType":"address[]","name":"pool_managers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"poolProfile_id1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/CVStrategyHelpers.sol":"CVStrategyHelpers"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"},"pkg/contracts/test/CVStrategyHelpers.sol":{"keccak256":"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24","urls":["bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc","dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3"],"license":"AGPL-3.0-or-later"}},"version":1},"storageLayout":{"storage":[{"astId":9534,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"gasMeteringOff","offset":0,"slot":"0","type":"t_bool"},{"astId":11571,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"stdstore","offset":0,"slot":"1","type":"t_struct(StdStorage)13452_storage"},{"astId":81361,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"metadata","offset":0,"slot":"9","type":"t_struct(Metadata)3098_storage"},{"astId":81373,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_poolProfileId1_","offset":0,"slot":"11","type":"t_bytes32"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13427_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13427_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13427_storage)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(FindData)13427_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13420,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13422,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13424,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13426,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(StdStorage)13452_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13436,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))"},{"astId":13439,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13441,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13443,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13445,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13447,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13449,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13451,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/test/CVStrategyHelpers.sol","id":81836,"exportedSymbols":{"Accounts":[5026],"Allo":[1390],"CVStrategy":[75790],"CVStrategyHelpers":[81835],"IRegistry":[2802],"Metadata":[3098],"Native":[3106],"StrategyStruct":[73113],"console":[29766]},"nodeType":"SourceUnit","src":"46:5810:136","nodes":[{"id":81336,"nodeType":"PragmaDirective","src":"46:24:136","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":81337,"nodeType":"ImportDirective","src":"72:31:136","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":29767,"symbolAliases":[],"unitAlias":""},{"id":81339,"nodeType":"ImportDirective","src":"104:53:136","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Allo.sol","file":"allo-v2-contracts/core/Allo.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":1391,"symbolAliases":[{"foreign":{"id":81338,"name":"Allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"112:4:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81341,"nodeType":"ImportDirective","src":"158:71:136","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"allo-v2-contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":81340,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"166:8:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81344,"nodeType":"ImportDirective","src":"230:65:136","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"../src/CVStrategy.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":75791,"symbolAliases":[{"foreign":{"id":81342,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75790,"src":"238:10:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":81343,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"250:14:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81346,"nodeType":"ImportDirective","src":"296:67:136","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"allo-v2-contracts/core/libraries/Native.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":3107,"symbolAliases":[{"foreign":{"id":81345,"name":"Native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"304:6:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81348,"nodeType":"ImportDirective","src":"364:74:136","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":81347,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"372:9:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81350,"nodeType":"ImportDirective","src":"440:66:136","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"allo-v2-test/foundry/shared/Accounts.sol","nameLocation":"-1:-1:-1","scope":81836,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":81349,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"448:8:136","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81835,"nodeType":"ContractDefinition","src":"508:5347:136","nodes":[{"id":81361,"nodeType":"VariableDeclaration","src":"561:109:136","nodes":[],"constant":false,"functionSelector":"392f37e9","mutability":"mutable","name":"metadata","nameLocation":"577:8:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata"},"typeName":{"id":81356,"nodeType":"UserDefinedTypeName","pathNode":{"id":81355,"name":"Metadata","nameLocations":["561:8:136"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"561:8:136"},"referencedDeclaration":3098,"src":"561:8:136","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"value":{"arguments":[{"hexValue":"31","id":81358,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"608:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","id":81359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"620:48:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_5132d0078161e899617508f56f10fe912a54664090fbe8853f8693be238f8d30","typeString":"literal_string \"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY\""},"value":"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_5132d0078161e899617508f56f10fe912a54664090fbe8853f8693be238f8d30","typeString":"literal_string \"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY\""}],"id":81357,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"588:8:136","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":81360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["598:8:136","611:7:136"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"588:82:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"visibility":"public"},{"id":81366,"nodeType":"VariableDeclaration","src":"699:43:136","nodes":[],"constant":true,"functionSelector":"2e0f2625","mutability":"constant","name":"DECIMALS","nameLocation":"723:8:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81362,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":81365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"734:2:136","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":81364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"740:2:136","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"734:8:136","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"id":81371,"nodeType":"VariableDeclaration","src":"748:50:136","nodes":[],"constant":true,"functionSelector":"3f26479e","mutability":"constant","name":"PERCENTAGE_SCALE","nameLocation":"772:16:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81367,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":81370,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81368,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"791:2:136","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":81369,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"797:1:136","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"791:7:136","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":81373,"nodeType":"VariableDeclaration","src":"805:33:136","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId1_","nameLocation":"822:16:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81372,"name":"bytes32","nodeType":"ElementaryTypeName","src":"805:7:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":81378,"nodeType":"VariableDeclaration","src":"845:44:136","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"871:7:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81374,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"id":81377,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":81375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"881:1:136","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313237","id":81376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"886:3:136","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"881:8:136","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"}},"visibility":"internal"},{"id":81383,"nodeType":"VariableDeclaration","src":"895:44:136","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"921:7:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81379,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":81382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":81380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:136","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":81381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:136","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"931:8:136","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"internal"},{"id":81388,"nodeType":"VariableDeclaration","src":"945:37:136","nodes":[],"constant":true,"mutability":"constant","name":"D","nameLocation":"971:1:136","scope":81835,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81384,"name":"uint256","nodeType":"ElementaryTypeName","src":"945:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"id":81387,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"975:2:136","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"37","id":81386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:1:136","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"975:7:136","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"}},"visibility":"internal"},{"id":81426,"nodeType":"FunctionDefinition","src":"1093:437:136","nodes":[],"body":{"id":81425,"nodeType":"Block","src":"1251:279:136","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81401,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81373,"src":"1265:16:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81404,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1293:1:136","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":81403,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81402,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1285:7:136","typeDescriptions":{}}},"id":81405,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:10:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1265:30:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81422,"nodeType":"IfStatement","src":"1261:230:136","trueBody":{"id":81421,"nodeType":"Block","src":"1297:194:136","statements":[{"expression":{"id":81419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81407,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81373,"src":"1311:16:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32","id":81410,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1370:1:136","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"hexValue":"506f6f6c2050726f66696c652031","id":81411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1373:16:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":81413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1411:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":81414,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1423:14:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":81412,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1391:8:136","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":81415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1401:8:136","1414:7:136"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1391:48:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":81416,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81393,"src":"1441:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81417,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81396,"src":"1453:13:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":81408,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81391,"src":"1330:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":81409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1339:13:136","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"1330:22:136","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":81418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:150:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1311:169:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81420,"nodeType":"ExpressionStatement","src":"1311:169:136"}]}},{"expression":{"id":81423,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81373,"src":"1507:16:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81400,"id":81424,"nodeType":"Return","src":"1500:23:136"}]},"functionSelector":"37d1c404","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id1","nameLocation":"1102:15:136","parameters":{"id":81397,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81391,"mutability":"mutable","name":"registry","nameLocation":"1128:8:136","nodeType":"VariableDeclaration","scope":81426,"src":"1118:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":81390,"nodeType":"UserDefinedTypeName","pathNode":{"id":81389,"name":"IRegistry","nameLocations":["1118:9:136"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"1118:9:136"},"referencedDeclaration":2802,"src":"1118:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":81393,"mutability":"mutable","name":"pool_admin","nameLocation":"1146:10:136","nodeType":"VariableDeclaration","scope":81426,"src":"1138:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81392,"name":"address","nodeType":"ElementaryTypeName","src":"1138:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81396,"mutability":"mutable","name":"pool_managers","nameLocation":"1175:13:136","nodeType":"VariableDeclaration","scope":81426,"src":"1158:30:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81394,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81395,"nodeType":"ArrayTypeName","src":"1158:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1117:72:136"},"returnParameters":{"id":81400,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81399,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81426,"src":"1238:7:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81398,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1238:7:136","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1237:9:136"},"scope":81835,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":81506,"nodeType":"FunctionDefinition","src":"1536:1088:136","nodes":[],"body":{"id":81505,"nodeType":"Block","src":"1823:801:136","nodes":[],"statements":[{"expression":{"id":81449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81443,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"1884:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1891:5:136","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":73093,"src":"1884:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e39393939373939","id":81447,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1913:15:136","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_999979900000000000_by_1","typeString":"int_const 999979900000000000"},"value":"0.9999799"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999979900000000000_by_1","typeString":"int_const 999979900000000000"}],"id":81446,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81680,"src":"1899:13:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:30:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1884:45:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81450,"nodeType":"ExpressionStatement","src":"1884:45:136"},{"expression":{"id":81457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81451,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"2028:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2035:8:136","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":73095,"src":"2028:15:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e32","id":81455,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2060:9:136","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"},"value":"0.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"}],"id":81454,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81680,"src":"2046:13:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2046:24:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2028:42:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81458,"nodeType":"ExpressionStatement","src":"2028:42:136"},{"expression":{"id":81465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81459,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"2099:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81461,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2106:6:136","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":73097,"src":"2099:13:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e303031","id":81463,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2129:11:136","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":81462,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81680,"src":"2115:13:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2115:26:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2099:42:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81466,"nodeType":"ExpressionStatement","src":"2099:42:136"},{"expression":{"id":81471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81467,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"2238:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81469,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2245:17:136","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":73091,"src":"2238:24:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81470,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81428,"src":"2265:17:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2238:44:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81472,"nodeType":"ExpressionStatement","src":"2238:44:136"},{"expression":{"id":81477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81473,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"2292:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81475,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2299:12:136","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73102,"src":"2292:19:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81476,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81431,"src":"2314:12:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"2292:34:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"id":81478,"nodeType":"ExpressionStatement","src":"2292:34:136"},{"expression":{"id":81483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81479,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"2336:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81481,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2343:11:136","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":73105,"src":"2336:18:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81482,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81434,"src":"2357:11:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"2336:32:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"id":81484,"nodeType":"ExpressionStatement","src":"2336:32:136"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81485,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81437,"src":"2383:11:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":81486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2395:9:136","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"2383:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2383:26:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81498,"nodeType":"IfStatement","src":"2379:197:136","trueBody":{"id":81497,"nodeType":"Block","src":"2411:165:136","statements":[{"expression":{"id":81495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81489,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81437,"src":"2527:11:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":81491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2539:9:136","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":73083,"src":"2527:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"323030","id":81492,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:3:136","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81493,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81366,"src":"2557:8:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2551:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2527:38:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81496,"nodeType":"ExpressionStatement","src":"2527:38:136"}]}},{"expression":{"id":81503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81499,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81441,"src":"2585:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2592:11:136","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":73108,"src":"2585:18:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81502,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81437,"src":"2606:11:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"2585:32:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":81504,"nodeType":"ExpressionStatement","src":"2585:32:136"}]},"functionSelector":"770b2e66","implemented":true,"kind":"function","modifiers":[],"name":"getParams","nameLocation":"1545:9:136","parameters":{"id":81438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81428,"mutability":"mutable","name":"registryCommunity","nameLocation":"1572:17:136","nodeType":"VariableDeclaration","scope":81506,"src":"1564:25:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81427,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81431,"mutability":"mutable","name":"proposalType","nameLocation":"1627:12:136","nodeType":"VariableDeclaration","scope":81506,"src":"1599:40:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":81430,"nodeType":"UserDefinedTypeName","pathNode":{"id":81429,"name":"StrategyStruct.ProposalType","nameLocations":["1599:14:136","1614:12:136"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"1599:27:136"},"referencedDeclaration":73026,"src":"1599:27:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":81434,"mutability":"mutable","name":"pointSystem","nameLocation":"1676:11:136","nodeType":"VariableDeclaration","scope":81506,"src":"1649:38:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":81433,"nodeType":"UserDefinedTypeName","pathNode":{"id":81432,"name":"StrategyStruct.PointSystem","nameLocations":["1649:14:136","1664:11:136"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"1649:26:136"},"referencedDeclaration":73031,"src":"1649:26:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":81437,"mutability":"mutable","name":"pointConfig","nameLocation":"1737:11:136","nodeType":"VariableDeclaration","scope":81506,"src":"1697:51:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":81436,"nodeType":"UserDefinedTypeName","pathNode":{"id":81435,"name":"StrategyStruct.PointSystemConfig","nameLocations":["1697:14:136","1712:17:136"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"1697:32:136"},"referencedDeclaration":73084,"src":"1697:32:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"}],"src":"1554:200:136"},"returnParameters":{"id":81442,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81441,"mutability":"mutable","name":"params","nameLocation":"1815:6:136","nodeType":"VariableDeclaration","scope":81506,"src":"1776:45:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":81440,"nodeType":"UserDefinedTypeName","pathNode":{"id":81439,"name":"StrategyStruct.InitializeParams","nameLocations":["1776:14:136","1791:16:136"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"1776:31:136"},"referencedDeclaration":73112,"src":"1776:31:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"1775:47:136"},"scope":81835,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81628,"nodeType":"FunctionDefinition","src":"2630:1442:136","nodes":[],"body":{"id":81627,"nodeType":"Block","src":"2978:1094:136","nodes":[],"statements":[{"assignments":[81536],"declarations":[{"constant":false,"id":81536,"mutability":"mutable","name":"params","nameLocation":"3078:6:136","nodeType":"VariableDeclaration","scope":81627,"src":"3039:45:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":81535,"nodeType":"UserDefinedTypeName","pathNode":{"id":81534,"name":"StrategyStruct.InitializeParams","nameLocations":["3039:14:136","3054:16:136"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"3039:31:136"},"referencedDeclaration":73112,"src":"3039:31:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":81543,"initialValue":{"arguments":[{"id":81538,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81513,"src":"3109:17:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81539,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81521,"src":"3128:12:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},{"id":81540,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81524,"src":"3142:11:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},{"id":81541,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81527,"src":"3155:11:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}],"id":81537,"name":"getParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81506,"src":"3099:9:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_enum$_ProposalType_$73026_$_t_enum$_PointSystem_$73031_$_t_struct$_PointSystemConfig_$73084_memory_ptr_$returns$_t_struct$_InitializeParams_$73112_memory_ptr_$","typeString":"function (address,enum StrategyStruct.ProposalType,enum StrategyStruct.PointSystem,struct StrategyStruct.PointSystemConfig memory) pure returns (struct StrategyStruct.InitializeParams memory)"}},"id":81542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:68:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3039:128:136"},{"assignments":[81548],"declarations":[{"constant":false,"id":81548,"mutability":"mutable","name":"_pool_managers","nameLocation":"3195:14:136","nodeType":"VariableDeclaration","scope":81627,"src":"3178:31:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81546,"name":"address","nodeType":"ElementaryTypeName","src":"3178:7:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81547,"nodeType":"ArrayTypeName","src":"3178:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":81554,"initialValue":{"arguments":[{"hexValue":"32","id":81552,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3226:1:136","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":81551,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3212:13:136","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":81549,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81550,"nodeType":"ArrayTypeName","src":"3216:9:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":81553,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:16:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3178:50:136"},{"expression":{"id":81562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":81555,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81548,"src":"3238:14:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":81557,"indexExpression":{"hexValue":"30","id":81556,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3253:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3238:17:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81560,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3266:4:136","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategyHelpers_$81835","typeString":"contract CVStrategyHelpers"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategyHelpers_$81835","typeString":"contract CVStrategyHelpers"}],"id":81559,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3258:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81558,"name":"address","nodeType":"ElementaryTypeName","src":"3258:7:136","typeDescriptions":{}}},"id":81561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:13:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3238:33:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81563,"nodeType":"ExpressionStatement","src":"3238:33:136"},{"expression":{"id":81572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":81564,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81548,"src":"3281:14:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":81566,"indexExpression":{"hexValue":"31","id":81565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3296:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3281:17:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":81569,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3309:3:136","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3313:6:136","memberName":"sender","nodeType":"MemberAccess","src":"3309:10:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81568,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3301:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81567,"name":"address","nodeType":"ElementaryTypeName","src":"3301:7:136","typeDescriptions":{}}},"id":81571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3301:19:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3281:39:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81573,"nodeType":"ExpressionStatement","src":"3281:39:136"},{"assignments":[81575],"declarations":[{"constant":false,"id":81575,"mutability":"mutable","name":"_token","nameLocation":"3578:6:136","nodeType":"VariableDeclaration","scope":81627,"src":"3570:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81574,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81577,"initialValue":{"id":81576,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"3587:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3570:23:136"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81578,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81518,"src":"3607:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3624:1:136","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":81580,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3616:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81579,"name":"address","nodeType":"ElementaryTypeName","src":"3616:7:136","typeDescriptions":{}}},"id":81582,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3616:10:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3607:19:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81589,"nodeType":"IfStatement","src":"3603:64:136","trueBody":{"id":81588,"nodeType":"Block","src":"3628:39:136","statements":[{"expression":{"id":81586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81584,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81575,"src":"3642:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81585,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81518,"src":"3651:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3642:14:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81587,"nodeType":"ExpressionStatement","src":"3642:14:136"}]}},{"expression":{"id":81612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81590,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81530,"src":"3676:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":81594,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81516,"src":"3789:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81595,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"3799:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":81596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3799:12:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81597,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81548,"src":"3813:14:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":81593,"name":"poolProfile_id1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81426,"src":"3773:15:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IRegistry_$2802_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (contract IRegistry,address,address[] memory) returns (bytes32)"}},"id":81598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:55:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":81601,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81511,"src":"3850:8:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81600,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:7:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81599,"name":"address","nodeType":"ElementaryTypeName","src":"3842:7:136","typeDescriptions":{}}},"id":81602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81605,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81536,"src":"3884:6:136","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":81603,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3873:3:136","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":81604,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3877:6:136","memberName":"encode","nodeType":"MemberAccess","src":"3873:10:136","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":81606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:18:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":81607,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81575,"src":"3905:6:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":81608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3925:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81609,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81361,"src":"3940:8:136","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},{"id":81610,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81548,"src":"3962:14:136","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":81591,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81509,"src":"3685:4:136","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"id":81592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3690:28:136","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":175,"src":"3685:33:136","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":81611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3685:301:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3676:310:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81613,"nodeType":"ExpressionStatement","src":"3676:310:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"id":81624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":81618,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81511,"src":"4023:8:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4015:8:136","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":81616,"name":"address","nodeType":"ElementaryTypeName","src":"4015:8:136","stateMutability":"payable","typeDescriptions":{}}},"id":81619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4015:17:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":81615,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75790,"src":"4004:10:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CVStrategy_$75790_$","typeString":"type(contract CVStrategy)"}},"id":81620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:29:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75790","typeString":"contract CVStrategy"}},"id":81621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4034:12:136","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73307,"src":"4004:42:136","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ProposalType_$73026_$","typeString":"function () view external returns (enum StrategyStruct.ProposalType)"}},"id":81622,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:44:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":81623,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81521,"src":"4052:12:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"src":"4004:60:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81614,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3997:6:136","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":81625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:68:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81626,"nodeType":"ExpressionStatement","src":"3997:68:136"}]},"functionSelector":"ed62303a","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"2639:10:136","parameters":{"id":81528,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81509,"mutability":"mutable","name":"allo","nameLocation":"2664:4:136","nodeType":"VariableDeclaration","scope":81628,"src":"2659:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},"typeName":{"id":81508,"nodeType":"UserDefinedTypeName","pathNode":{"id":81507,"name":"Allo","nameLocations":["2659:4:136"],"nodeType":"IdentifierPath","referencedDeclaration":1390,"src":"2659:4:136"},"referencedDeclaration":1390,"src":"2659:4:136","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"visibility":"internal"},{"constant":false,"id":81511,"mutability":"mutable","name":"strategy","nameLocation":"2686:8:136","nodeType":"VariableDeclaration","scope":81628,"src":"2678:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81510,"name":"address","nodeType":"ElementaryTypeName","src":"2678:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81513,"mutability":"mutable","name":"registryCommunity","nameLocation":"2712:17:136","nodeType":"VariableDeclaration","scope":81628,"src":"2704:25:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81512,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81516,"mutability":"mutable","name":"registry","nameLocation":"2749:8:136","nodeType":"VariableDeclaration","scope":81628,"src":"2739:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":81515,"nodeType":"UserDefinedTypeName","pathNode":{"id":81514,"name":"IRegistry","nameLocations":["2739:9:136"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"2739:9:136"},"referencedDeclaration":2802,"src":"2739:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":81518,"mutability":"mutable","name":"token","nameLocation":"2775:5:136","nodeType":"VariableDeclaration","scope":81628,"src":"2767:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81517,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81521,"mutability":"mutable","name":"proposalType","nameLocation":"2818:12:136","nodeType":"VariableDeclaration","scope":81628,"src":"2790:40:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":81520,"nodeType":"UserDefinedTypeName","pathNode":{"id":81519,"name":"StrategyStruct.ProposalType","nameLocations":["2790:14:136","2805:12:136"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"2790:27:136"},"referencedDeclaration":73026,"src":"2790:27:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":81524,"mutability":"mutable","name":"pointSystem","nameLocation":"2867:11:136","nodeType":"VariableDeclaration","scope":81628,"src":"2840:38:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":81523,"nodeType":"UserDefinedTypeName","pathNode":{"id":81522,"name":"StrategyStruct.PointSystem","nameLocations":["2840:14:136","2855:11:136"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"2840:26:136"},"referencedDeclaration":73031,"src":"2840:26:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":81527,"mutability":"mutable","name":"pointConfig","nameLocation":"2928:11:136","nodeType":"VariableDeclaration","scope":81628,"src":"2888:51:136","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":81526,"nodeType":"UserDefinedTypeName","pathNode":{"id":81525,"name":"StrategyStruct.PointSystemConfig","nameLocations":["2888:14:136","2903:17:136"],"nodeType":"IdentifierPath","referencedDeclaration":73084,"src":"2888:32:136"},"referencedDeclaration":73084,"src":"2888:32:136","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"}],"src":"2649:296:136"},"returnParameters":{"id":81531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81530,"mutability":"mutable","name":"poolId","nameLocation":"2970:6:136","nodeType":"VariableDeclaration","scope":81628,"src":"2962:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81529,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2961:16:136"},"scope":81835,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81666,"nodeType":"FunctionDefinition","src":"4078:543:136","nodes":[],"body":{"id":81665,"nodeType":"Block","src":"4365:256:136","nodes":[],"statements":[{"expression":{"arguments":[{"id":81652,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81631,"src":"4406:4:136","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},{"id":81653,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81633,"src":"4424:8:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81654,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81635,"src":"4446:17:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81655,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81638,"src":"4477:8:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},{"id":81656,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81640,"src":"4499:5:136","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81657,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81643,"src":"4518:12:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},{"id":81658,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81646,"src":"4544:11:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},{"arguments":[{"hexValue":"30","id":81661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4602:1:136","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"}],"expression":{"id":81659,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"4569:14:136","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":81660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4584:17:136","memberName":"PointSystemConfig","nodeType":"MemberAccess","referencedDeclaration":73084,"src":"4569:32:136","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PointSystemConfig_$73084_storage_ptr_$","typeString":"type(struct StrategyStruct.PointSystemConfig storage pointer)"}},"id":81662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:35:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},{"typeIdentifier":"t_struct$_PointSystemConfig_$73084_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}],"id":81651,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[81628,81666],"referencedDeclaration":81628,"src":"4382:10:136","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Allo_$1390_$_t_address_$_t_address_$_t_contract$_IRegistry_$2802_$_t_address_$_t_enum$_ProposalType_$73026_$_t_enum$_PointSystem_$73031_$_t_struct$_PointSystemConfig_$73084_memory_ptr_$returns$_t_uint256_$","typeString":"function (contract Allo,address,address,contract IRegistry,address,enum StrategyStruct.ProposalType,enum StrategyStruct.PointSystem,struct StrategyStruct.PointSystemConfig memory) returns (uint256)"}},"id":81663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:232:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81650,"id":81664,"nodeType":"Return","src":"4375:239:136"}]},"functionSelector":"d8c12dc2","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"4087:10:136","parameters":{"id":81647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81631,"mutability":"mutable","name":"allo","nameLocation":"4112:4:136","nodeType":"VariableDeclaration","scope":81666,"src":"4107:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},"typeName":{"id":81630,"nodeType":"UserDefinedTypeName","pathNode":{"id":81629,"name":"Allo","nameLocations":["4107:4:136"],"nodeType":"IdentifierPath","referencedDeclaration":1390,"src":"4107:4:136"},"referencedDeclaration":1390,"src":"4107:4:136","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"visibility":"internal"},{"constant":false,"id":81633,"mutability":"mutable","name":"strategy","nameLocation":"4134:8:136","nodeType":"VariableDeclaration","scope":81666,"src":"4126:16:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81632,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81635,"mutability":"mutable","name":"registryCommunity","nameLocation":"4160:17:136","nodeType":"VariableDeclaration","scope":81666,"src":"4152:25:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81634,"name":"address","nodeType":"ElementaryTypeName","src":"4152:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81638,"mutability":"mutable","name":"registry","nameLocation":"4197:8:136","nodeType":"VariableDeclaration","scope":81666,"src":"4187:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":81637,"nodeType":"UserDefinedTypeName","pathNode":{"id":81636,"name":"IRegistry","nameLocations":["4187:9:136"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"4187:9:136"},"referencedDeclaration":2802,"src":"4187:9:136","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":81640,"mutability":"mutable","name":"token","nameLocation":"4223:5:136","nodeType":"VariableDeclaration","scope":81666,"src":"4215:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81639,"name":"address","nodeType":"ElementaryTypeName","src":"4215:7:136","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81643,"mutability":"mutable","name":"proposalType","nameLocation":"4266:12:136","nodeType":"VariableDeclaration","scope":81666,"src":"4238:40:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":81642,"nodeType":"UserDefinedTypeName","pathNode":{"id":81641,"name":"StrategyStruct.ProposalType","nameLocations":["4238:14:136","4253:12:136"],"nodeType":"IdentifierPath","referencedDeclaration":73026,"src":"4238:27:136"},"referencedDeclaration":73026,"src":"4238:27:136","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$73026","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":81646,"mutability":"mutable","name":"pointSystem","nameLocation":"4315:11:136","nodeType":"VariableDeclaration","scope":81666,"src":"4288:38:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":81645,"nodeType":"UserDefinedTypeName","pathNode":{"id":81644,"name":"StrategyStruct.PointSystem","nameLocations":["4288:14:136","4303:11:136"],"nodeType":"IdentifierPath","referencedDeclaration":73031,"src":"4288:26:136"},"referencedDeclaration":73031,"src":"4288:26:136","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"4097:235:136"},"returnParameters":{"id":81650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81649,"mutability":"mutable","name":"poolId","nameLocation":"4357:6:136","nodeType":"VariableDeclaration","scope":81666,"src":"4349:14:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81648,"name":"uint256","nodeType":"ElementaryTypeName","src":"4349:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4348:16:136"},"scope":81835,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81680,"nodeType":"FunctionDefinition","src":"4627:114:136","nodes":[],"body":{"id":81679,"nodeType":"Block","src":"4699:42:136","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81673,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81668,"src":"4716:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000_by_1","typeString":"int_const 100000000000"},"id":81676,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81674,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4726:2:136","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3131","id":81675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4732:2:136","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"4726:8:136","typeDescriptions":{"typeIdentifier":"t_rational_100000000000_by_1","typeString":"int_const 100000000000"}},"src":"4716:18:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81672,"id":81678,"nodeType":"Return","src":"4709:25:136"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_etherToFloat","nameLocation":"4636:13:136","parameters":{"id":81669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81668,"mutability":"mutable","name":"_amount","nameLocation":"4658:7:136","nodeType":"VariableDeclaration","scope":81680,"src":"4650:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81667,"name":"uint256","nodeType":"ElementaryTypeName","src":"4650:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4649:17:136"},"returnParameters":{"id":81672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81680,"src":"4690:7:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81670,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4689:9:136"},"scope":81835,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":81714,"nodeType":"FunctionDefinition","src":"4747:269:136","nodes":[],"body":{"id":81713,"nodeType":"Block","src":"4825:191:136","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81692,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81690,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"4843:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":81691,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81383,"src":"4849:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:13:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":81693,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4858:42:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":81689,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4835:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:66:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81695,"nodeType":"ExpressionStatement","src":"4835:66:136"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81697,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81684,"src":"4919:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81698,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81383,"src":"4924:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4919:12:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":81700,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4933:30:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":81696,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4911:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4911:53:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81702,"nodeType":"ExpressionStatement","src":"4911:53:136"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81708,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81703,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81682,"src":"4983:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81704,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81684,"src":"4988:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81706,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4982:9:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":81707,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"4994:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4982:19:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81709,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4981:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":81710,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5006:3:136","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"4981:28:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81688,"id":81712,"nodeType":"Return","src":"4974:35:136"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"4756:4:136","parameters":{"id":81685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81682,"mutability":"mutable","name":"_a","nameLocation":"4769:2:136","nodeType":"VariableDeclaration","scope":81714,"src":"4761:10:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81681,"name":"uint256","nodeType":"ElementaryTypeName","src":"4761:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81684,"mutability":"mutable","name":"_b","nameLocation":"4781:2:136","nodeType":"VariableDeclaration","scope":81714,"src":"4773:10:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81683,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4760:24:136"},"returnParameters":{"id":81688,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81687,"mutability":"mutable","name":"_result","nameLocation":"4816:7:136","nodeType":"VariableDeclaration","scope":81714,"src":"4808:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81686,"name":"uint256","nodeType":"ElementaryTypeName","src":"4808:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:17:136"},"scope":81835,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":81778,"nodeType":"FunctionDefinition","src":"5022:447:136","nodes":[],"body":{"id":81777,"nodeType":"Block","src":"5100:369:136","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81726,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81724,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81716,"src":"5118:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81725,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81383,"src":"5123:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5118:12:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":81727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5132:30:136","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":81723,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5110:7:136","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81728,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:53:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81729,"nodeType":"ExpressionStatement","src":"5110:53:136"},{"assignments":[81731],"declarations":[{"constant":false,"id":81731,"mutability":"mutable","name":"a","nameLocation":"5181:1:136","nodeType":"VariableDeclaration","scope":81777,"src":"5173:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81730,"name":"uint256","nodeType":"ElementaryTypeName","src":"5173:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81733,"initialValue":{"id":81732,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81716,"src":"5185:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5173:14:136"},{"assignments":[81735],"declarations":[{"constant":false,"id":81735,"mutability":"mutable","name":"b","nameLocation":"5205:1:136","nodeType":"VariableDeclaration","scope":81777,"src":"5197:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81734,"name":"uint256","nodeType":"ElementaryTypeName","src":"5197:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81737,"initialValue":{"id":81736,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81718,"src":"5209:2:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5197:14:136"},{"expression":{"id":81740,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81738,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81721,"src":"5221:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81739,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81383,"src":"5231:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5221:17:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81741,"nodeType":"ExpressionStatement","src":"5221:17:136"},{"body":{"id":81775,"nodeType":"Block","src":"5262:201:136","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81745,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81735,"src":"5280:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":81746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5284:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5280:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5289:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5280:10:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81773,"nodeType":"Block","src":"5370:83:136","statements":[{"expression":{"id":81767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81762,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81721,"src":"5388:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81764,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81721,"src":"5403:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81765,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81731,"src":"5412:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81763,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81714,"src":"5398:4:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":81766,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5398:16:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5388:26:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81768,"nodeType":"ExpressionStatement","src":"5388:26:136"},{"expression":{"id":81771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81769,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81735,"src":"5432:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":81770,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5437:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5432:6:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81772,"nodeType":"ExpressionStatement","src":"5432:6:136"}]},"id":81774,"nodeType":"IfStatement","src":"5276:177:136","trueBody":{"id":81761,"nodeType":"Block","src":"5292:72:136","statements":[{"expression":{"id":81755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81750,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81731,"src":"5310:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81752,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81731,"src":"5319:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81753,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81731,"src":"5322:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81751,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81714,"src":"5314:4:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":81754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5314:10:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5310:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81756,"nodeType":"ExpressionStatement","src":"5310:14:136"},{"expression":{"id":81759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81757,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81735,"src":"5342:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":81758,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5348:1:136","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5342:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81760,"nodeType":"ExpressionStatement","src":"5342:7:136"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81744,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81742,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81735,"src":"5255:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81743,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5259:1:136","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5255:5:136","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81776,"nodeType":"WhileStatement","src":"5248:215:136"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"5031:4:136","parameters":{"id":81719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81716,"mutability":"mutable","name":"_a","nameLocation":"5044:2:136","nodeType":"VariableDeclaration","scope":81778,"src":"5036:10:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81715,"name":"uint256","nodeType":"ElementaryTypeName","src":"5036:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81718,"mutability":"mutable","name":"_b","nameLocation":"5056:2:136","nodeType":"VariableDeclaration","scope":81778,"src":"5048:10:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81717,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5035:24:136"},"returnParameters":{"id":81722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81721,"mutability":"mutable","name":"_result","nameLocation":"5091:7:136","nodeType":"VariableDeclaration","scope":81778,"src":"5083:15:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81720,"name":"uint256","nodeType":"ElementaryTypeName","src":"5083:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5082:17:136"},"scope":81835,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":81834,"nodeType":"FunctionDefinition","src":"5475:378:136","nodes":[],"body":{"id":81833,"nodeType":"Block","src":"5638:215:136","nodes":[],"statements":[{"assignments":[81792],"declarations":[{"constant":false,"id":81792,"mutability":"mutable","name":"t","nameLocation":"5656:1:136","nodeType":"VariableDeclaration","scope":81833,"src":"5648:9:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81791,"name":"uint256","nodeType":"ElementaryTypeName","src":"5648:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81794,"initialValue":{"id":81793,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81780,"src":"5660:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5648:23:136"},{"assignments":[81796],"declarations":[{"constant":false,"id":81796,"mutability":"mutable","name":"atTWO_128","nameLocation":"5689:9:136","nodeType":"VariableDeclaration","scope":81833,"src":"5681:17:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81795,"name":"uint256","nodeType":"ElementaryTypeName","src":"5681:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81806,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81798,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81786,"src":"5707:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":81799,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5716:3:136","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5707:12:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81801,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5706:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":81802,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81388,"src":"5723:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5706:18:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81804,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81792,"src":"5726:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81797,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81778,"src":"5701:4:136","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":81805,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:27:136","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5681:47:136"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81825,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81807,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81796,"src":"5748:9:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81808,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81782,"src":"5760:9:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5748:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81810,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5747:23:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81811,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81784,"src":"5774:10:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81812,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81388,"src":"5787:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:14:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81816,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81814,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81383,"src":"5792:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81815,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81796,"src":"5802:9:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5792:19:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81817,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5791:21:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:38:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81819,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81388,"src":"5816:1:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81820,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81786,"src":"5820:5:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5816:9:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81822,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5815:11:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:52:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81824,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5773:54:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5747:80:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81826,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5746:82:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":81827,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81378,"src":"5831:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:92:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81829,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5745:94:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":81830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5843:3:136","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5745:101:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81790,"id":81832,"nodeType":"Return","src":"5738:108:136"}]},"functionSelector":"e99ce911","implemented":true,"kind":"function","modifiers":[],"name":"_calculateConviction","nameLocation":"5484:20:136","parameters":{"id":81787,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81780,"mutability":"mutable","name":"_timePassed","nameLocation":"5513:11:136","nodeType":"VariableDeclaration","scope":81834,"src":"5505:19:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81779,"name":"uint256","nodeType":"ElementaryTypeName","src":"5505:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81782,"mutability":"mutable","name":"_lastConv","nameLocation":"5534:9:136","nodeType":"VariableDeclaration","scope":81834,"src":"5526:17:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81781,"name":"uint256","nodeType":"ElementaryTypeName","src":"5526:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81784,"mutability":"mutable","name":"_oldAmount","nameLocation":"5553:10:136","nodeType":"VariableDeclaration","scope":81834,"src":"5545:18:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81783,"name":"uint256","nodeType":"ElementaryTypeName","src":"5545:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81786,"mutability":"mutable","name":"decay","nameLocation":"5573:5:136","nodeType":"VariableDeclaration","scope":81834,"src":"5565:13:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81785,"name":"uint256","nodeType":"ElementaryTypeName","src":"5565:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5504:75:136"},"returnParameters":{"id":81790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81789,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81834,"src":"5625:7:136","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81788,"name":"uint256","nodeType":"ElementaryTypeName","src":"5625:7:136","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5624:9:136"},"scope":81835,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":81351,"name":"Native","nameLocations":["538:6:136"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"538:6:136"},"id":81352,"nodeType":"InheritanceSpecifier","src":"538:6:136"},{"baseName":{"id":81353,"name":"Accounts","nameLocations":["546:8:136"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"546:8:136"},"id":81354,"nodeType":"InheritanceSpecifier","src":"546:8:136"}],"canonicalName":"CVStrategyHelpers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[81835,5026,12355,11562,3106],"name":"CVStrategyHelpers","nameLocation":"517:17:136","scope":81836,"usedErrors":[]}],"license":"AGPL-3.0-or-later"},"id":136} \ No newline at end of file diff --git a/pkg/contracts/out/ERC20.sol/ERC20.json b/pkg/contracts/out/ERC20.sol/ERC20.json index dea61c222..3b1c568fa 100644 --- a/pkg/contracts/out/ERC20.sol/ERC20.json +++ b/pkg/contracts/out/ERC20.sol/ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Solady (https://github.com/vectorized/solady/blob/main/src/tokens/ERC20.sol)Modified from Solmate (https://github.com/transmissions11/solmate/blob/main/src/tokens/ERC20.sol)Modified from OpenZeppelin (https://github.com/OpenZeppelin/openzeppelin-contracts/blob/master/contracts/token/ERC20/ERC20.sol)\",\"details\":\"Note: The ERC20 standard allows minting and transferring to and from the zero address, minting and transferring zero tokens, as well as self-approvals. For performance, this implementation WILL NOT revert for such actions. Please add any checks with overrides if desired.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"stateVariables\":{\"_ALLOWANCE_SLOT_SEED\":{\"details\":\"The allowance slot of (`owner`, `spender`) is given by: ``` mstore(0x20, spender) mstore(0x0c, _ALLOWANCE_SLOT_SEED) mstore(0x00, owner) let allowanceSlot := keccak256(0x0c, 0x34) ```\"},\"_APPROVAL_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Approval(address,address,uint256)\\\"))`.\"},\"_BALANCE_SLOT_SEED\":{\"details\":\"The balance slot of `owner` is given by: ``` mstore(0x0c, _BALANCE_SLOT_SEED) mstore(0x00, owner) let balanceSlot := keccak256(0x0c, 0x20) ```\"},\"_NONCES_SLOT_SEED\":{\"details\":\"The nonce slot of `owner` is given by: ``` mstore(0x0c, _NONCES_SLOT_SEED) mstore(0x00, owner) let nonceSlot := keccak256(0x0c, 0x20) ```\"},\"_TOTAL_SUPPLY_SLOT\":{\"details\":\"The storage slot for the total supply.\"},\"_TRANSFER_EVENT_SIGNATURE\":{\"details\":\"`keccak256(bytes(\\\"Transfer(address,address,uint256)\\\"))`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Simple ERC20 + EIP-2612 implementation.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"}},"version":1},"id":43} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000c4238038062000c4283398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61094e80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea26469706673582212204412d3db4927f0b19a043a2c2ae25f7456288e96036de6820c3767bddc17796964736f6c63430008130033","sourceMap":"1532:11312:73:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:73;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;14:127:144;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:144;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:144;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:144:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:144;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:144;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:144;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:144;;;3992:26;3943:89;-1:-1:-1;;2747:1:144;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:144;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:144;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:144;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:144:o;:::-;1532:11312:73;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea26469706673582212204412d3db4927f0b19a043a2c2ae25f7456288e96036de6820c3767bddc17796964736f6c63430008130033","sourceMap":"1532:11312:73:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:144;;1185:22;1167:41;;1155:2;1140:18;4444:197:73;1027:187:144;3255:106:73;3342:12;;3255:106;;;1365:25:144;;;1353:2;1338:18;3255:106:73;1219:177:144;5203:256:73;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1876:36:144;;1864:2;1849:18;3104:91:73;1734:184:144;5854:234:73;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:73;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4102:18:73;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:81;4581:32:73;734:10:81;4597:7:73;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:81;5356:38:73;5372:4;734:10:81;5387:6:73;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:73;;5203:256;-1:-1:-1;;;;5203:256:73:o;5854:234::-;734:10:81;5942:4:73;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:73;;;;;;;;;;5942:4;;734:10:81;5996:64:73;;734:10:81;;4102:27:73;;6021:38;;6049:10;;6021:38;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;734:10:81;6668:4:73;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:73;;;;;;;;;;6668:4;;734:10:81;6812:15:73;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:73;;3307:2:144;6784:85:73;;;3289:21:144;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6784:85:73;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:81;3873:28:73;734:10:81;3890:2:73;3894:6;3873:9;:28::i;10457:340::-;-1:-1:-1;;;;;10558:19:73;;10550:68;;;;-1:-1:-1;;;10550:68:73;;3713:2:144;10550:68:73;;;3695:21:144;3752:2;3732:18;;;3725:30;3791:34;3771:18;;;3764:62;3862:6;3842:18;;;3835:34;3886:19;;10550:68:73;3511:400:144;10550:68:73;-1:-1:-1;;;;;10636:21:73;;10628:68;;;;-1:-1:-1;;;10628:68:73;;4118:2:144;10628:68:73;;;4100:21:144;4157:2;4137:18;;;4130:30;4196:34;4176:18;;;4169:62;4267:4;4247:18;;;4240:32;4289:19;;10628:68:73;3916:398:144;10628:68:73;-1:-1:-1;;;;;10707:18:73;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1365:25:144;;;10758:32:73;;1338:18:144;10758:32:73;;;;;;;10457:340;;;:::o;11078:411::-;-1:-1:-1;;;;;4102:18:73;;;11178:24;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11244:37:73;;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:73;;4521:2:144;11297:68:73;;;4503:21:144;4560:2;4540:18;;;4533:30;4599:31;4579:18;;;4572:59;4648:18;;11297:68:73;4319:353:144;11297:68:73;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:73;;7544:68;;;;-1:-1:-1;;;7544:68:73;;4879:2:144;7544:68:73;;;4861:21:144;4918:2;4898:18;;;4891:30;4957:34;4937:18;;;4930:62;5028:7;5008:18;;;5001:35;5053:19;;7544:68:73;4677:401:144;7544:68:73;-1:-1:-1;;;;;7630:16:73;;7622:64;;;;-1:-1:-1;;;7622:64:73;;5285:2:144;7622:64:73;;;5267:21:144;5324:2;5304:18;;;5297:30;5363:34;5343:18;;;5336:62;5434:5;5414:18;;;5407:33;5457:19;;7622:64:73;5083:399:144;7622:64:73;-1:-1:-1;;;;;7768:15:73;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:73;;5689:2:144;7793:72:73;;;5671:21:144;5728:2;5708:18;;;5701:30;5767:34;5747:18;;;5740:62;5838:8;5818:18;;;5811:36;5864:19;;7793:72:73;5487:402:144;7793:72:73;-1:-1:-1;;;;;7899:15:73;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1365:25:144;;;8114:13:73;;8163:26;;1338:18:144;8163:26:73;;;;;;;8200:37;12073:91;14:548:144;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:144;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:144:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:144:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:144;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:144;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":56468,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":56474,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":56476,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":56478,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":56480,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","id":57040,"exportedSymbols":{"Context":[57959],"ERC20":[57039],"IERC20":[57117],"IERC20Metadata":[57142]},"nodeType":"SourceUnit","src":"105:12740:73","nodes":[{"id":56454,"nodeType":"PragmaDirective","src":"105:23:73","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56455,"nodeType":"ImportDirective","src":"130:22:73","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":57040,"sourceUnit":57118,"symbolAliases":[],"unitAlias":""},{"id":56456,"nodeType":"ImportDirective","src":"153:41:73","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":57040,"sourceUnit":57143,"symbolAliases":[],"unitAlias":""},{"id":56457,"nodeType":"ImportDirective","src":"195:33:73","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":57040,"sourceUnit":57960,"symbolAliases":[],"unitAlias":""},{"id":57039,"nodeType":"ContractDefinition","src":"1532:11312:73","nodes":[{"id":56468,"nodeType":"VariableDeclaration","src":"1588:45:73","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1624:9:73","scope":57039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56467,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56465,"name":"address","nodeType":"ElementaryTypeName","src":"1596:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1588:27:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56466,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56474,"nodeType":"VariableDeclaration","src":"1640:67:73","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1696:11:73","scope":57039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":56473,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56469,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56472,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56470,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56471,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":56476,"nodeType":"VariableDeclaration","src":"1714:28:73","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1730:12:73","scope":57039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56475,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":56478,"nodeType":"VariableDeclaration","src":"1749:20:73","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1764:5:73","scope":57039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":56477,"name":"string","nodeType":"ElementaryTypeName","src":"1749:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":56480,"nodeType":"VariableDeclaration","src":"1775:22:73","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1790:7:73","scope":57039,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":56479,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":56497,"nodeType":"FunctionDefinition","src":"1980:113:73","nodes":[],"body":{"id":56496,"nodeType":"Block","src":"2036:57:73","nodes":[],"statements":[{"expression":{"id":56490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56488,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56478,"src":"2046:5:73","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56489,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56483,"src":"2054:5:73","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2046:13:73","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56491,"nodeType":"ExpressionStatement","src":"2046:13:73"},{"expression":{"id":56494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56492,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56480,"src":"2069:7:73","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56493,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56485,"src":"2079:7:73","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2069:17:73","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56495,"nodeType":"ExpressionStatement","src":"2069:17:73"}]},"documentation":{"id":56481,"nodeType":"StructuredDocumentation","src":"1804:171:73","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56486,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56483,"mutability":"mutable","name":"name_","nameLocation":"2006:5:73","nodeType":"VariableDeclaration","scope":56497,"src":"1992:19:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56482,"name":"string","nodeType":"ElementaryTypeName","src":"1992:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56485,"mutability":"mutable","name":"symbol_","nameLocation":"2027:7:73","nodeType":"VariableDeclaration","scope":56497,"src":"2013:21:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56484,"name":"string","nodeType":"ElementaryTypeName","src":"2013:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1991:44:73"},"returnParameters":{"id":56487,"nodeType":"ParameterList","parameters":[],"src":"2036:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56507,"nodeType":"FunctionDefinition","src":"2158:98:73","nodes":[],"body":{"id":56506,"nodeType":"Block","src":"2227:29:73","nodes":[],"statements":[{"expression":{"id":56504,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56478,"src":"2244:5:73","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":56503,"id":56505,"nodeType":"Return","src":"2237:12:73"}]},"baseFunctions":[57129],"documentation":{"id":56498,"nodeType":"StructuredDocumentation","src":"2099:54:73","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2167:4:73","overrides":{"id":56500,"nodeType":"OverrideSpecifier","overrides":[],"src":"2194:8:73"},"parameters":{"id":56499,"nodeType":"ParameterList","parameters":[],"src":"2171:2:73"},"returnParameters":{"id":56503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56502,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56507,"src":"2212:13:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56501,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2211:15:73"},"scope":57039,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56517,"nodeType":"FunctionDefinition","src":"2369:102:73","nodes":[],"body":{"id":56516,"nodeType":"Block","src":"2440:31:73","nodes":[],"statements":[{"expression":{"id":56514,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56480,"src":"2457:7:73","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":56513,"id":56515,"nodeType":"Return","src":"2450:14:73"}]},"baseFunctions":[57135],"documentation":{"id":56508,"nodeType":"StructuredDocumentation","src":"2262:102:73","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2378:6:73","overrides":{"id":56510,"nodeType":"OverrideSpecifier","overrides":[],"src":"2407:8:73"},"parameters":{"id":56509,"nodeType":"ParameterList","parameters":[],"src":"2384:2:73"},"returnParameters":{"id":56513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56517,"src":"2425:13:73","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56511,"name":"string","nodeType":"ElementaryTypeName","src":"2425:6:73","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2424:15:73"},"scope":57039,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56527,"nodeType":"FunctionDefinition","src":"3104:91:73","nodes":[],"body":{"id":56526,"nodeType":"Block","src":"3169:26:73","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":56524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3186:2:73","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":56523,"id":56525,"nodeType":"Return","src":"3179:9:73"}]},"baseFunctions":[57141],"documentation":{"id":56518,"nodeType":"StructuredDocumentation","src":"2477:622:73","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3113:8:73","overrides":{"id":56520,"nodeType":"OverrideSpecifier","overrides":[],"src":"3144:8:73"},"parameters":{"id":56519,"nodeType":"ParameterList","parameters":[],"src":"3121:2:73"},"returnParameters":{"id":56523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56527,"src":"3162:5:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56521,"name":"uint8","nodeType":"ElementaryTypeName","src":"3162:5:73","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3161:7:73"},"scope":57039,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56537,"nodeType":"FunctionDefinition","src":"3255:106:73","nodes":[],"body":{"id":56536,"nodeType":"Block","src":"3325:36:73","nodes":[],"statements":[{"expression":{"id":56534,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56476,"src":"3342:12:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56533,"id":56535,"nodeType":"Return","src":"3335:19:73"}]},"baseFunctions":[57066],"documentation":{"id":56528,"nodeType":"StructuredDocumentation","src":"3201:49:73","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3264:11:73","overrides":{"id":56530,"nodeType":"OverrideSpecifier","overrides":[],"src":"3298:8:73"},"parameters":{"id":56529,"nodeType":"ParameterList","parameters":[],"src":"3275:2:73"},"returnParameters":{"id":56533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56532,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56537,"src":"3316:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56531,"name":"uint256","nodeType":"ElementaryTypeName","src":"3316:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3315:9:73"},"scope":57039,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56551,"nodeType":"FunctionDefinition","src":"3419:125:73","nodes":[],"body":{"id":56550,"nodeType":"Block","src":"3502:42:73","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56546,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"3519:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56548,"indexExpression":{"id":56547,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56540,"src":"3529:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3519:18:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56545,"id":56549,"nodeType":"Return","src":"3512:25:73"}]},"baseFunctions":[57074],"documentation":{"id":56538,"nodeType":"StructuredDocumentation","src":"3367:47:73","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3428:9:73","overrides":{"id":56542,"nodeType":"OverrideSpecifier","overrides":[],"src":"3475:8:73"},"parameters":{"id":56541,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56540,"mutability":"mutable","name":"account","nameLocation":"3446:7:73","nodeType":"VariableDeclaration","scope":56551,"src":"3438:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56539,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3437:17:73"},"returnParameters":{"id":56545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56544,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56551,"src":"3493:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56543,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3492:9:73"},"scope":57039,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56576,"nodeType":"FunctionDefinition","src":"3740:189:73","nodes":[],"body":{"id":56575,"nodeType":"Block","src":"3825:104:73","nodes":[],"statements":[{"assignments":[56563],"declarations":[{"constant":false,"id":56563,"mutability":"mutable","name":"owner","nameLocation":"3843:5:73","nodeType":"VariableDeclaration","scope":56575,"src":"3835:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56562,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56566,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56564,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57941,"src":"3851:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3835:28:73"},{"expression":{"arguments":[{"id":56568,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56563,"src":"3883:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56569,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56554,"src":"3890:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56556,"src":"3894:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56567,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"3873:9:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:28:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56572,"nodeType":"ExpressionStatement","src":"3873:28:73"},{"expression":{"hexValue":"74727565","id":56573,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3918:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56561,"id":56574,"nodeType":"Return","src":"3911:11:73"}]},"baseFunctions":[57084],"documentation":{"id":56552,"nodeType":"StructuredDocumentation","src":"3550:185:73","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3749:8:73","overrides":{"id":56558,"nodeType":"OverrideSpecifier","overrides":[],"src":"3801:8:73"},"parameters":{"id":56557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56554,"mutability":"mutable","name":"to","nameLocation":"3766:2:73","nodeType":"VariableDeclaration","scope":56576,"src":"3758:10:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56553,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56556,"mutability":"mutable","name":"amount","nameLocation":"3778:6:73","nodeType":"VariableDeclaration","scope":56576,"src":"3770:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56555,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3757:28:73"},"returnParameters":{"id":56561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56576,"src":"3819:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56559,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56594,"nodeType":"FunctionDefinition","src":"3987:149:73","nodes":[],"body":{"id":56593,"nodeType":"Block","src":"4085:51:73","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":56587,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56474,"src":"4102:11:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56589,"indexExpression":{"id":56588,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56579,"src":"4114:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:18:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56591,"indexExpression":{"id":56590,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56581,"src":"4121:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:27:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56586,"id":56592,"nodeType":"Return","src":"4095:34:73"}]},"baseFunctions":[57094],"documentation":{"id":56577,"nodeType":"StructuredDocumentation","src":"3935:47:73","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3996:9:73","overrides":{"id":56583,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:73"},"parameters":{"id":56582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56579,"mutability":"mutable","name":"owner","nameLocation":"4014:5:73","nodeType":"VariableDeclaration","scope":56594,"src":"4006:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56578,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56581,"mutability":"mutable","name":"spender","nameLocation":"4029:7:73","nodeType":"VariableDeclaration","scope":56594,"src":"4021:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56580,"name":"address","nodeType":"ElementaryTypeName","src":"4021:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:32:73"},"returnParameters":{"id":56586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56594,"src":"4076:7:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56584,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:9:73"},"scope":57039,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56619,"nodeType":"FunctionDefinition","src":"4444:197:73","nodes":[],"body":{"id":56618,"nodeType":"Block","src":"4533:108:73","nodes":[],"statements":[{"assignments":[56606],"declarations":[{"constant":false,"id":56606,"mutability":"mutable","name":"owner","nameLocation":"4551:5:73","nodeType":"VariableDeclaration","scope":56618,"src":"4543:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56605,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56609,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56607,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57941,"src":"4559:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4559:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4543:28:73"},{"expression":{"arguments":[{"id":56611,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56606,"src":"4590:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56612,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56597,"src":"4597:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56613,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56599,"src":"4606:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56610,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"4581:8:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56614,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:32:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56615,"nodeType":"ExpressionStatement","src":"4581:32:73"},{"expression":{"hexValue":"74727565","id":56616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4630:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56604,"id":56617,"nodeType":"Return","src":"4623:11:73"}]},"baseFunctions":[57104],"documentation":{"id":56595,"nodeType":"StructuredDocumentation","src":"4142:297:73","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4453:7:73","overrides":{"id":56601,"nodeType":"OverrideSpecifier","overrides":[],"src":"4509:8:73"},"parameters":{"id":56600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56597,"mutability":"mutable","name":"spender","nameLocation":"4469:7:73","nodeType":"VariableDeclaration","scope":56619,"src":"4461:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56596,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56599,"mutability":"mutable","name":"amount","nameLocation":"4486:6:73","nodeType":"VariableDeclaration","scope":56619,"src":"4478:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56598,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:33:73"},"returnParameters":{"id":56604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56603,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56619,"src":"4527:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56602,"name":"bool","nodeType":"ElementaryTypeName","src":"4527:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4526:6:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56652,"nodeType":"FunctionDefinition","src":"5203:256:73","nodes":[],"body":{"id":56651,"nodeType":"Block","src":"5306:153:73","nodes":[],"statements":[{"assignments":[56633],"declarations":[{"constant":false,"id":56633,"mutability":"mutable","name":"spender","nameLocation":"5324:7:73","nodeType":"VariableDeclaration","scope":56651,"src":"5316:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56632,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56636,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56634,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57941,"src":"5334:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5316:30:73"},{"expression":{"arguments":[{"id":56638,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56622,"src":"5372:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56639,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56633,"src":"5378:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56640,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56626,"src":"5387:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56637,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57016,"src":"5356:15:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:38:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56642,"nodeType":"ExpressionStatement","src":"5356:38:73"},{"expression":{"arguments":[{"id":56644,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56622,"src":"5414:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56645,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56624,"src":"5420:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56646,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56626,"src":"5424:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56643,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"5404:9:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:27:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56648,"nodeType":"ExpressionStatement","src":"5404:27:73"},{"expression":{"hexValue":"74727565","id":56649,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5448:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56631,"id":56650,"nodeType":"Return","src":"5441:11:73"}]},"baseFunctions":[57116],"documentation":{"id":56620,"nodeType":"StructuredDocumentation","src":"4647:551:73","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5212:12:73","overrides":{"id":56628,"nodeType":"OverrideSpecifier","overrides":[],"src":"5282:8:73"},"parameters":{"id":56627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56622,"mutability":"mutable","name":"from","nameLocation":"5233:4:73","nodeType":"VariableDeclaration","scope":56652,"src":"5225:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56621,"name":"address","nodeType":"ElementaryTypeName","src":"5225:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56624,"mutability":"mutable","name":"to","nameLocation":"5247:2:73","nodeType":"VariableDeclaration","scope":56652,"src":"5239:10:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56623,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56626,"mutability":"mutable","name":"amount","nameLocation":"5259:6:73","nodeType":"VariableDeclaration","scope":56652,"src":"5251:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56625,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5224:42:73"},"returnParameters":{"id":56631,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56630,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56652,"src":"5300:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56629,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5299:6:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56681,"nodeType":"FunctionDefinition","src":"5854:234:73","nodes":[],"body":{"id":56680,"nodeType":"Block","src":"5948:140:73","nodes":[],"statements":[{"assignments":[56663],"declarations":[{"constant":false,"id":56663,"mutability":"mutable","name":"owner","nameLocation":"5966:5:73","nodeType":"VariableDeclaration","scope":56680,"src":"5958:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56662,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56666,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56664,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57941,"src":"5974:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56665,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5974:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5958:28:73"},{"expression":{"arguments":[{"id":56668,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56663,"src":"6005:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56669,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56655,"src":"6012:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56671,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56663,"src":"6031:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56672,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56655,"src":"6038:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56670,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56594,"src":"6021:9:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:25:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":56674,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56657,"src":"6049:10:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6021:38:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56667,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"5996:8:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5996:64:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56677,"nodeType":"ExpressionStatement","src":"5996:64:73"},{"expression":{"hexValue":"74727565","id":56678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6077:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56661,"id":56679,"nodeType":"Return","src":"6070:11:73"}]},"documentation":{"id":56653,"nodeType":"StructuredDocumentation","src":"5465:384:73","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5863:17:73","parameters":{"id":56658,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56655,"mutability":"mutable","name":"spender","nameLocation":"5889:7:73","nodeType":"VariableDeclaration","scope":56681,"src":"5881:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56654,"name":"address","nodeType":"ElementaryTypeName","src":"5881:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56657,"mutability":"mutable","name":"addedValue","nameLocation":"5906:10:73","nodeType":"VariableDeclaration","scope":56681,"src":"5898:18:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56656,"name":"uint256","nodeType":"ElementaryTypeName","src":"5898:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:37:73"},"returnParameters":{"id":56661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56660,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56681,"src":"5942:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56659,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5941:6:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56722,"nodeType":"FunctionDefinition","src":"6575:427:73","nodes":[],"body":{"id":56721,"nodeType":"Block","src":"6674:328:73","nodes":[],"statements":[{"assignments":[56692],"declarations":[{"constant":false,"id":56692,"mutability":"mutable","name":"owner","nameLocation":"6692:5:73","nodeType":"VariableDeclaration","scope":56721,"src":"6684:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56691,"name":"address","nodeType":"ElementaryTypeName","src":"6684:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56695,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56693,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57941,"src":"6700:10:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56694,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:12:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6684:28:73"},{"assignments":[56697],"declarations":[{"constant":false,"id":56697,"mutability":"mutable","name":"currentAllowance","nameLocation":"6730:16:73","nodeType":"VariableDeclaration","scope":56721,"src":"6722:24:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56696,"name":"uint256","nodeType":"ElementaryTypeName","src":"6722:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56702,"initialValue":{"arguments":[{"id":56699,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56692,"src":"6759:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56700,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56684,"src":"6766:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56698,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56594,"src":"6749:9:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:25:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6722:52:73"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56704,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56697,"src":"6792:16:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56705,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56686,"src":"6812:15:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6792:35:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":56707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6829:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":56703,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6784:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6784:85:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56709,"nodeType":"ExpressionStatement","src":"6784:85:73"},{"id":56718,"nodeType":"UncheckedBlock","src":"6879:95:73","statements":[{"expression":{"arguments":[{"id":56711,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56692,"src":"6912:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56712,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56684,"src":"6919:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56713,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56697,"src":"6928:16:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56714,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56686,"src":"6947:15:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6928:34:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56710,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"6903:8:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:60:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56717,"nodeType":"ExpressionStatement","src":"6903:60:73"}]},{"expression":{"hexValue":"74727565","id":56719,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6991:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56690,"id":56720,"nodeType":"Return","src":"6984:11:73"}]},"documentation":{"id":56682,"nodeType":"StructuredDocumentation","src":"6094:476:73","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6584:17:73","parameters":{"id":56687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56684,"mutability":"mutable","name":"spender","nameLocation":"6610:7:73","nodeType":"VariableDeclaration","scope":56722,"src":"6602:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56683,"name":"address","nodeType":"ElementaryTypeName","src":"6602:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56686,"mutability":"mutable","name":"subtractedValue","nameLocation":"6627:15:73","nodeType":"VariableDeclaration","scope":56722,"src":"6619:23:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56685,"name":"uint256","nodeType":"ElementaryTypeName","src":"6619:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:42:73"},"returnParameters":{"id":56690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56689,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56722,"src":"6668:4:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56688,"name":"bool","nodeType":"ElementaryTypeName","src":"6668:4:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6667:6:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56799,"nodeType":"FunctionDefinition","src":"7456:788:73","nodes":[],"body":{"id":56798,"nodeType":"Block","src":"7534:710:73","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56733,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56725,"src":"7552:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:73","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":56735,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56734,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:73","typeDescriptions":{}}},"id":56737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7552:18:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":56739,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7572:39:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":56732,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7544:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:68:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56741,"nodeType":"ExpressionStatement","src":"7544:68:73"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56748,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56743,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56727,"src":"7630:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7644:1:73","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":56745,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7636:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56744,"name":"address","nodeType":"ElementaryTypeName","src":"7636:7:73","typeDescriptions":{}}},"id":56747,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7630:16:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":56749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7648:37:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":56742,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7622:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:64:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56751,"nodeType":"ExpressionStatement","src":"7622:64:73"},{"expression":{"arguments":[{"id":56753,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56725,"src":"7718:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56754,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56727,"src":"7724:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56755,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56729,"src":"7728:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56752,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"7697:20:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:38:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56757,"nodeType":"ExpressionStatement","src":"7697:38:73"},{"assignments":[56759],"declarations":[{"constant":false,"id":56759,"mutability":"mutable","name":"fromBalance","nameLocation":"7754:11:73","nodeType":"VariableDeclaration","scope":56798,"src":"7746:19:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56758,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56763,"initialValue":{"baseExpression":{"id":56760,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"7768:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56762,"indexExpression":{"id":56761,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56725,"src":"7778:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7768:15:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7746:37:73"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56765,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56759,"src":"7801:11:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56766,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56729,"src":"7816:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:21:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":56768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:40:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":56764,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7793:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56769,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:72:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56770,"nodeType":"ExpressionStatement","src":"7793:72:73"},{"id":56785,"nodeType":"UncheckedBlock","src":"7875:273:73","statements":[{"expression":{"id":56777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56771,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"7899:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56773,"indexExpression":{"id":56772,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56725,"src":"7909:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7899:15:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56774,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56759,"src":"7917:11:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56775,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56729,"src":"7931:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7917:20:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:38:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56778,"nodeType":"ExpressionStatement","src":"7899:38:73"},{"expression":{"id":56783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56779,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"8114:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56781,"indexExpression":{"id":56780,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56727,"src":"8124:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8114:13:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56782,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56729,"src":"8131:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:23:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56784,"nodeType":"ExpressionStatement","src":"8114:23:73"}]},{"eventCall":{"arguments":[{"id":56787,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56725,"src":"8172:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56788,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56727,"src":"8178:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56789,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56729,"src":"8182:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56786,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"8163:8:73","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56790,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:26:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56791,"nodeType":"EmitStatement","src":"8158:31:73"},{"expression":{"arguments":[{"id":56793,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56725,"src":"8220:4:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56794,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56727,"src":"8226:2:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56795,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56729,"src":"8230:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56792,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57038,"src":"8200:19:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56796,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8200:37:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56797,"nodeType":"ExpressionStatement","src":"8200:37:73"}]},"documentation":{"id":56723,"nodeType":"StructuredDocumentation","src":"7008:443:73","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7465:9:73","parameters":{"id":56730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56725,"mutability":"mutable","name":"from","nameLocation":"7483:4:73","nodeType":"VariableDeclaration","scope":56799,"src":"7475:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56724,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56727,"mutability":"mutable","name":"to","nameLocation":"7497:2:73","nodeType":"VariableDeclaration","scope":56799,"src":"7489:10:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56726,"name":"address","nodeType":"ElementaryTypeName","src":"7489:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56729,"mutability":"mutable","name":"amount","nameLocation":"7509:6:73","nodeType":"VariableDeclaration","scope":56799,"src":"7501:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56728,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7474:42:73"},"returnParameters":{"id":56731,"nodeType":"ParameterList","parameters":[],"src":"7534:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56856,"nodeType":"FunctionDefinition","src":"8520:535:73","nodes":[],"body":{"id":56855,"nodeType":"Block","src":"8585:470:73","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56808,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56802,"src":"8603:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8622:1:73","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":56810,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56809,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:73","typeDescriptions":{}}},"id":56812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8603:21:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":56814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8626:33:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":56807,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8595:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:65:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56816,"nodeType":"ExpressionStatement","src":"8595:65:73"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":56820,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8700:1:73","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":56819,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8692:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56818,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:73","typeDescriptions":{}}},"id":56821,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8692:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56822,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56802,"src":"8704:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56823,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56804,"src":"8713:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56817,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"8671:20:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:49:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56825,"nodeType":"ExpressionStatement","src":"8671:49:73"},{"expression":{"id":56828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56826,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56476,"src":"8731:12:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56827,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56804,"src":"8747:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:22:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56829,"nodeType":"ExpressionStatement","src":"8731:22:73"},{"id":56836,"nodeType":"UncheckedBlock","src":"8763:175:73","statements":[{"expression":{"id":56834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56830,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"8899:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56832,"indexExpression":{"id":56831,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56802,"src":"8909:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8899:18:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56833,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56804,"src":"8921:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56835,"nodeType":"ExpressionStatement","src":"8899:28:73"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":56840,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:73","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":56839,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8961:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56838,"name":"address","nodeType":"ElementaryTypeName","src":"8961:7:73","typeDescriptions":{}}},"id":56841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56842,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56802,"src":"8973:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56843,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56804,"src":"8982:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56837,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"8952:8:73","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:37:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56845,"nodeType":"EmitStatement","src":"8947:42:73"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":56849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9028:1:73","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":56848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9020:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56847,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:73","typeDescriptions":{}}},"id":56850,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56851,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56802,"src":"9032:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56852,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56804,"src":"9041:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56846,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57038,"src":"9000:19:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:48:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56854,"nodeType":"ExpressionStatement","src":"9000:48:73"}]},"documentation":{"id":56800,"nodeType":"StructuredDocumentation","src":"8250:265:73","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8529:5:73","parameters":{"id":56805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56802,"mutability":"mutable","name":"account","nameLocation":"8543:7:73","nodeType":"VariableDeclaration","scope":56856,"src":"8535:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56801,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56804,"mutability":"mutable","name":"amount","nameLocation":"8560:6:73","nodeType":"VariableDeclaration","scope":56856,"src":"8552:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56803,"name":"uint256","nodeType":"ElementaryTypeName","src":"8552:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8534:33:73"},"returnParameters":{"id":56806,"nodeType":"ParameterList","parameters":[],"src":"8585:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56928,"nodeType":"FunctionDefinition","src":"9375:659:73","nodes":[],"body":{"id":56927,"nodeType":"Block","src":"9440:594:73","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56865,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"9458:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56868,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:73","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":56867,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9469:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56866,"name":"address","nodeType":"ElementaryTypeName","src":"9469:7:73","typeDescriptions":{}}},"id":56869,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9458:21:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":56871,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9481:35:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":56864,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9450:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56872,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9450:67:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56873,"nodeType":"ExpressionStatement","src":"9450:67:73"},{"expression":{"arguments":[{"id":56875,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"9549:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56878,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:73","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":56877,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9558:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56876,"name":"address","nodeType":"ElementaryTypeName","src":"9558:7:73","typeDescriptions":{}}},"id":56879,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56880,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56861,"src":"9570:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56874,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"9528:20:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9528:49:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56882,"nodeType":"ExpressionStatement","src":"9528:49:73"},{"assignments":[56884],"declarations":[{"constant":false,"id":56884,"mutability":"mutable","name":"accountBalance","nameLocation":"9596:14:73","nodeType":"VariableDeclaration","scope":56927,"src":"9588:22:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56883,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56888,"initialValue":{"baseExpression":{"id":56885,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"9613:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56887,"indexExpression":{"id":56886,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"9623:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9613:18:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9588:43:73"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56890,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56884,"src":"9649:14:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56891,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56861,"src":"9667:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:24:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":56893,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9675:36:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":56889,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9641:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:71:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56895,"nodeType":"ExpressionStatement","src":"9641:71:73"},{"id":56908,"nodeType":"UncheckedBlock","src":"9722:194:73","statements":[{"expression":{"id":56902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56896,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56468,"src":"9746:9:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56898,"indexExpression":{"id":56897,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"9756:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9746:18:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56899,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56884,"src":"9767:14:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56900,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56861,"src":"9784:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:23:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:44:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56903,"nodeType":"ExpressionStatement","src":"9746:44:73"},{"expression":{"id":56906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56904,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56476,"src":"9883:12:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":56905,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56861,"src":"9899:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9883:22:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56907,"nodeType":"ExpressionStatement","src":"9883:22:73"}]},{"eventCall":{"arguments":[{"id":56910,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"9940:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56913,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:73","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":56912,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9949:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56911,"name":"address","nodeType":"ElementaryTypeName","src":"9949:7:73","typeDescriptions":{}}},"id":56914,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56915,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56861,"src":"9961:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56909,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57051,"src":"9931:8:73","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9931:37:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56917,"nodeType":"EmitStatement","src":"9926:42:73"},{"expression":{"arguments":[{"id":56919,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56859,"src":"9999:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56922,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:73","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":56921,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56920,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:73","typeDescriptions":{}}},"id":56923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56924,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56861,"src":"10020:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56918,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57038,"src":"9979:19:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9979:48:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56926,"nodeType":"ExpressionStatement","src":"9979:48:73"}]},"documentation":{"id":56857,"nodeType":"StructuredDocumentation","src":"9061:309:73","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9384:5:73","parameters":{"id":56862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56859,"mutability":"mutable","name":"account","nameLocation":"9398:7:73","nodeType":"VariableDeclaration","scope":56928,"src":"9390:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56858,"name":"address","nodeType":"ElementaryTypeName","src":"9390:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56861,"mutability":"mutable","name":"amount","nameLocation":"9415:6:73","nodeType":"VariableDeclaration","scope":56928,"src":"9407:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56860,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:33:73"},"returnParameters":{"id":56863,"nodeType":"ParameterList","parameters":[],"src":"9440:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56973,"nodeType":"FunctionDefinition","src":"10457:340:73","nodes":[],"body":{"id":56972,"nodeType":"Block","src":"10540:257:73","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56939,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56931,"src":"10558:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56942,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10575:1:73","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":56941,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10567:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56940,"name":"address","nodeType":"ElementaryTypeName","src":"10567:7:73","typeDescriptions":{}}},"id":56943,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10558:19:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":56945,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10579:38:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":56938,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10550:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56946,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:68:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56947,"nodeType":"ExpressionStatement","src":"10550:68:73"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56949,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"10636:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56952,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10655:1:73","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":56951,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10647:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56950,"name":"address","nodeType":"ElementaryTypeName","src":"10647:7:73","typeDescriptions":{}}},"id":56953,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:10:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:21:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":56955,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:36:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":56948,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10628:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:68:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56957,"nodeType":"ExpressionStatement","src":"10628:68:73"},{"expression":{"id":56964,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":56958,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56474,"src":"10707:11:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56961,"indexExpression":{"id":56959,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56931,"src":"10719:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10707:18:73","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56962,"indexExpression":{"id":56960,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"10726:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10707:27:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56963,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"10737:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10707:36:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56965,"nodeType":"ExpressionStatement","src":"10707:36:73"},{"eventCall":{"arguments":[{"id":56967,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56931,"src":"10767:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56968,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56933,"src":"10774:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56969,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56935,"src":"10783:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56966,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57060,"src":"10758:8:73","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:32:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56971,"nodeType":"EmitStatement","src":"10753:37:73"}]},"documentation":{"id":56929,"nodeType":"StructuredDocumentation","src":"10040:412:73","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10466:8:73","parameters":{"id":56936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56931,"mutability":"mutable","name":"owner","nameLocation":"10483:5:73","nodeType":"VariableDeclaration","scope":56973,"src":"10475:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56930,"name":"address","nodeType":"ElementaryTypeName","src":"10475:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56933,"mutability":"mutable","name":"spender","nameLocation":"10498:7:73","nodeType":"VariableDeclaration","scope":56973,"src":"10490:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56932,"name":"address","nodeType":"ElementaryTypeName","src":"10490:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56935,"mutability":"mutable","name":"amount","nameLocation":"10515:6:73","nodeType":"VariableDeclaration","scope":56973,"src":"10507:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56934,"name":"uint256","nodeType":"ElementaryTypeName","src":"10507:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10474:48:73"},"returnParameters":{"id":56937,"nodeType":"ParameterList","parameters":[],"src":"10540:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":57016,"nodeType":"FunctionDefinition","src":"11078:411:73","nodes":[],"body":{"id":57015,"nodeType":"Block","src":"11168:321:73","nodes":[],"statements":[{"assignments":[56984],"declarations":[{"constant":false,"id":56984,"mutability":"mutable","name":"currentAllowance","nameLocation":"11186:16:73","nodeType":"VariableDeclaration","scope":57015,"src":"11178:24:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56983,"name":"uint256","nodeType":"ElementaryTypeName","src":"11178:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56989,"initialValue":{"arguments":[{"id":56986,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"11215:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56987,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56978,"src":"11222:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56985,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56594,"src":"11205:9:73","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:25:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11178:52:73"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56990,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56984,"src":"11244:16:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":56993,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11269:7:73","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56992,"name":"uint256","nodeType":"ElementaryTypeName","src":"11269:7:73","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":56991,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11264:4:73","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56994,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11264:13:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":56995,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11278:3:73","memberName":"max","nodeType":"MemberAccess","src":"11264:17:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11244:37:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57014,"nodeType":"IfStatement","src":"11240:243:73","trueBody":{"id":57013,"nodeType":"Block","src":"11283:200:73","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56998,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56984,"src":"11305:16:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56999,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56980,"src":"11325:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11305:26:73","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":57001,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11333:31:73","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":56997,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11297:7:73","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:68:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57003,"nodeType":"ExpressionStatement","src":"11297:68:73"},{"id":57012,"nodeType":"UncheckedBlock","src":"11379:94:73","statements":[{"expression":{"arguments":[{"id":57005,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"11416:5:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57006,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56978,"src":"11423:7:73","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57007,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56984,"src":"11432:16:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":57008,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56980,"src":"11451:6:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11432:25:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":57004,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56973,"src":"11407:8:73","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":57010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:51:73","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57011,"nodeType":"ExpressionStatement","src":"11407:51:73"}]}]}}]},"documentation":{"id":56974,"nodeType":"StructuredDocumentation","src":"10803:270:73","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11087:15:73","parameters":{"id":56981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56976,"mutability":"mutable","name":"owner","nameLocation":"11111:5:73","nodeType":"VariableDeclaration","scope":57016,"src":"11103:13:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56975,"name":"address","nodeType":"ElementaryTypeName","src":"11103:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56978,"mutability":"mutable","name":"spender","nameLocation":"11126:7:73","nodeType":"VariableDeclaration","scope":57016,"src":"11118:15:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56977,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56980,"mutability":"mutable","name":"amount","nameLocation":"11143:6:73","nodeType":"VariableDeclaration","scope":57016,"src":"11135:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56979,"name":"uint256","nodeType":"ElementaryTypeName","src":"11135:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11102:48:73"},"returnParameters":{"id":56982,"nodeType":"ParameterList","parameters":[],"src":"11168:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":57027,"nodeType":"FunctionDefinition","src":"12073:91:73","nodes":[],"body":{"id":57026,"nodeType":"Block","src":"12162:2:73","nodes":[],"statements":[]},"documentation":{"id":57017,"nodeType":"StructuredDocumentation","src":"11495:573:73","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12082:20:73","parameters":{"id":57024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57019,"mutability":"mutable","name":"from","nameLocation":"12111:4:73","nodeType":"VariableDeclaration","scope":57027,"src":"12103:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57018,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57021,"mutability":"mutable","name":"to","nameLocation":"12125:2:73","nodeType":"VariableDeclaration","scope":57027,"src":"12117:10:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57020,"name":"address","nodeType":"ElementaryTypeName","src":"12117:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57023,"mutability":"mutable","name":"amount","nameLocation":"12137:6:73","nodeType":"VariableDeclaration","scope":57027,"src":"12129:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57022,"name":"uint256","nodeType":"ElementaryTypeName","src":"12129:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12102:42:73"},"returnParameters":{"id":57025,"nodeType":"ParameterList","parameters":[],"src":"12162:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":57038,"nodeType":"FunctionDefinition","src":"12752:90:73","nodes":[],"body":{"id":57037,"nodeType":"Block","src":"12840:2:73","nodes":[],"statements":[]},"documentation":{"id":57028,"nodeType":"StructuredDocumentation","src":"12170:577:73","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12761:19:73","parameters":{"id":57035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57030,"mutability":"mutable","name":"from","nameLocation":"12789:4:73","nodeType":"VariableDeclaration","scope":57038,"src":"12781:12:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57029,"name":"address","nodeType":"ElementaryTypeName","src":"12781:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57032,"mutability":"mutable","name":"to","nameLocation":"12803:2:73","nodeType":"VariableDeclaration","scope":57038,"src":"12795:10:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57031,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:73","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57034,"mutability":"mutable","name":"amount","nameLocation":"12815:6:73","nodeType":"VariableDeclaration","scope":57038,"src":"12807:14:73","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57033,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:73","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12780:42:73"},"returnParameters":{"id":57036,"nodeType":"ParameterList","parameters":[],"src":"12840:0:73"},"scope":57039,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":56459,"name":"Context","nameLocations":["1550:7:73"],"nodeType":"IdentifierPath","referencedDeclaration":57959,"src":"1550:7:73"},"id":56460,"nodeType":"InheritanceSpecifier","src":"1550:7:73"},{"baseName":{"id":56461,"name":"IERC20","nameLocations":["1559:6:73"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"1559:6:73"},"id":56462,"nodeType":"InheritanceSpecifier","src":"1559:6:73"},{"baseName":{"id":56463,"name":"IERC20Metadata","nameLocations":["1567:14:73"],"nodeType":"IdentifierPath","referencedDeclaration":57142,"src":"1567:14:73"},"id":56464,"nodeType":"InheritanceSpecifier","src":"1567:14:73"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":56458,"nodeType":"StructuredDocumentation","src":"230:1301:73","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[57039,57142,57117,57959],"name":"ERC20","nameLocation":"1541:5:73","scope":57040,"usedErrors":[]}],"license":"MIT"},"id":73} \ No newline at end of file diff --git a/pkg/contracts/out/ERC20/ERC20.sol/ERC20.json b/pkg/contracts/out/ERC20/ERC20.sol/ERC20.json deleted file mode 100644 index 45c71f865..000000000 --- a/pkg/contracts/out/ERC20/ERC20.sol/ERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000c4238038062000c4283398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61094e80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220a4589753820198a92c380310bde4bbf43cafcc8c8d2ffac5bc2a8ad4df95de5e64736f6c63430008130033","sourceMap":"1532:11312:29:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:29;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;14:127:122;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:122;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:122;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:122:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:122;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:122;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:122;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:122;;;3992:26;3943:89;-1:-1:-1;;2747:1:122;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:122;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:122;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:122;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:122:o;:::-;1532:11312:29;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220a4589753820198a92c380310bde4bbf43cafcc8c8d2ffac5bc2a8ad4df95de5e64736f6c63430008130033","sourceMap":"1532:11312:29:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:122;;1185:22;1167:41;;1155:2;1140:18;4444:197:29;1027:187:122;3255:106:29;3342:12;;3255:106;;;1365:25:122;;;1353:2;1338:18;3255:106:29;1219:177:122;5203:256:29;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1876:36:122;;1864:2;1849:18;3104:91:29;1734:184:122;5854:234:29;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:29;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4102:18:29;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:35;4581:32:29;719:10:35;4597:7:29;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:35;5356:38:29;5372:4;719:10:35;5387:6:29;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:29;;5203:256;-1:-1:-1;;;;5203:256:29:o;5854:234::-;719:10:35;5942:4:29;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:29;;;;;;;;;;5942:4;;719:10:35;5996:64:29;;719:10:35;;4102:27:29;;6021:38;;6049:10;;6021:38;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;719:10:35;6668:4:29;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:29;;;;;;;;;;6668:4;;719:10:35;6812:15:29;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:29;;3307:2:122;6784:85:29;;;3289:21:122;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6784:85:29;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:35;3873:28:29;719:10:35;3890:2:29;3894:6;3873:9;:28::i;10457:340::-;-1:-1:-1;;;;;10558:19:29;;10550:68;;;;-1:-1:-1;;;10550:68:29;;3713:2:122;10550:68:29;;;3695:21:122;3752:2;3732:18;;;3725:30;3791:34;3771:18;;;3764:62;3862:6;3842:18;;;3835:34;3886:19;;10550:68:29;3511:400:122;10550:68:29;-1:-1:-1;;;;;10636:21:29;;10628:68;;;;-1:-1:-1;;;10628:68:29;;4118:2:122;10628:68:29;;;4100:21:122;4157:2;4137:18;;;4130:30;4196:34;4176:18;;;4169:62;4267:4;4247:18;;;4240:32;4289:19;;10628:68:29;3916:398:122;10628:68:29;-1:-1:-1;;;;;10707:18:29;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1365:25:122;;;10758:32:29;;1338:18:122;10758:32:29;;;;;;;10457:340;;;:::o;11078:411::-;-1:-1:-1;;;;;4102:18:29;;;11178:24;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11244:37:29;;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:29;;4521:2:122;11297:68:29;;;4503:21:122;4560:2;4540:18;;;4533:30;4599:31;4579:18;;;4572:59;4648:18;;11297:68:29;4319:353:122;11297:68:29;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:29;;7544:68;;;;-1:-1:-1;;;7544:68:29;;4879:2:122;7544:68:29;;;4861:21:122;4918:2;4898:18;;;4891:30;4957:34;4937:18;;;4930:62;5028:7;5008:18;;;5001:35;5053:19;;7544:68:29;4677:401:122;7544:68:29;-1:-1:-1;;;;;7630:16:29;;7622:64;;;;-1:-1:-1;;;7622:64:29;;5285:2:122;7622:64:29;;;5267:21:122;5324:2;5304:18;;;5297:30;5363:34;5343:18;;;5336:62;5434:5;5414:18;;;5407:33;5457:19;;7622:64:29;5083:399:122;7622:64:29;-1:-1:-1;;;;;7768:15:29;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:29;;5689:2:122;7793:72:29;;;5671:21:122;5728:2;5708:18;;;5701:30;5767:34;5747:18;;;5740:62;5838:8;5818:18;;;5811:36;5864:19;;7793:72:29;5487:402:122;7793:72:29;-1:-1:-1;;;;;7899:15:29;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1365:25:122;;;8114:13:29;;8163:26;;1338:18:122;8163:26:29;;;;;;;8200:37;12073:91;14:548:122;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:122;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:122:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:122:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:122;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:122;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"id":29} \ No newline at end of file diff --git a/pkg/contracts/out/ERC20/IERC20.sol/IERC20.json b/pkg/contracts/out/ERC20/IERC20.sol/IERC20.json index 4c1b264c0..2bdaddcb0 100644 --- a/pkg/contracts/out/ERC20/IERC20.sol/IERC20.json +++ b/pkg/contracts/out/ERC20/IERC20.sol/IERC20.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"}},"version":1},"id":30} \ No newline at end of file +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","id":57118,"exportedSymbols":{"IERC20":[57117]},"nodeType":"SourceUnit","src":"106:2631:74","nodes":[{"id":57041,"nodeType":"PragmaDirective","src":"106:23:74","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":57117,"nodeType":"ContractDefinition","src":"202:2534:74","nodes":[{"id":57051,"nodeType":"EventDefinition","src":"388:72:74","nodes":[],"anonymous":false,"documentation":{"id":57043,"nodeType":"StructuredDocumentation","src":"225:158:74","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"394:8:74","parameters":{"id":57050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57045,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"419:4:74","nodeType":"VariableDeclaration","scope":57051,"src":"403:20:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57044,"name":"address","nodeType":"ElementaryTypeName","src":"403:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57047,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"441:2:74","nodeType":"VariableDeclaration","scope":57051,"src":"425:18:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57046,"name":"address","nodeType":"ElementaryTypeName","src":"425:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57049,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"453:5:74","nodeType":"VariableDeclaration","scope":57051,"src":"445:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57048,"name":"uint256","nodeType":"ElementaryTypeName","src":"445:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"402:57:74"}},{"id":57060,"nodeType":"EventDefinition","src":"619:78:74","nodes":[],"anonymous":false,"documentation":{"id":57052,"nodeType":"StructuredDocumentation","src":"466:148:74","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"625:8:74","parameters":{"id":57059,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57054,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"650:5:74","nodeType":"VariableDeclaration","scope":57060,"src":"634:21:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57053,"name":"address","nodeType":"ElementaryTypeName","src":"634:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57056,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"673:7:74","nodeType":"VariableDeclaration","scope":57060,"src":"657:23:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57055,"name":"address","nodeType":"ElementaryTypeName","src":"657:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57058,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"690:5:74","nodeType":"VariableDeclaration","scope":57060,"src":"682:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57057,"name":"uint256","nodeType":"ElementaryTypeName","src":"682:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"633:63:74"}},{"id":57066,"nodeType":"FunctionDefinition","src":"774:55:74","nodes":[],"documentation":{"id":57061,"nodeType":"StructuredDocumentation","src":"703:66:74","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"783:11:74","parameters":{"id":57062,"nodeType":"ParameterList","parameters":[],"src":"794:2:74"},"returnParameters":{"id":57065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57064,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57066,"src":"820:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57063,"name":"uint256","nodeType":"ElementaryTypeName","src":"820:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"819:9:74"},"scope":57117,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57074,"nodeType":"FunctionDefinition","src":"912:68:74","nodes":[],"documentation":{"id":57067,"nodeType":"StructuredDocumentation","src":"835:72:74","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"921:9:74","parameters":{"id":57070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57069,"mutability":"mutable","name":"account","nameLocation":"939:7:74","nodeType":"VariableDeclaration","scope":57074,"src":"931:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57068,"name":"address","nodeType":"ElementaryTypeName","src":"931:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"930:17:74"},"returnParameters":{"id":57073,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57072,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57074,"src":"971:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57071,"name":"uint256","nodeType":"ElementaryTypeName","src":"971:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"970:9:74"},"scope":57117,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57084,"nodeType":"FunctionDefinition","src":"1193:70:74","nodes":[],"documentation":{"id":57075,"nodeType":"StructuredDocumentation","src":"986:202:74","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1202:8:74","parameters":{"id":57080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57077,"mutability":"mutable","name":"to","nameLocation":"1219:2:74","nodeType":"VariableDeclaration","scope":57084,"src":"1211:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57076,"name":"address","nodeType":"ElementaryTypeName","src":"1211:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57079,"mutability":"mutable","name":"amount","nameLocation":"1231:6:74","nodeType":"VariableDeclaration","scope":57084,"src":"1223:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57078,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1210:28:74"},"returnParameters":{"id":57083,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57082,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57084,"src":"1257:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57081,"name":"bool","nodeType":"ElementaryTypeName","src":"1257:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1256:6:74"},"scope":57117,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":57094,"nodeType":"FunctionDefinition","src":"1538:83:74","nodes":[],"documentation":{"id":57085,"nodeType":"StructuredDocumentation","src":"1269:264:74","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1547:9:74","parameters":{"id":57090,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57087,"mutability":"mutable","name":"owner","nameLocation":"1565:5:74","nodeType":"VariableDeclaration","scope":57094,"src":"1557:13:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57086,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57089,"mutability":"mutable","name":"spender","nameLocation":"1580:7:74","nodeType":"VariableDeclaration","scope":57094,"src":"1572:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57088,"name":"address","nodeType":"ElementaryTypeName","src":"1572:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:32:74"},"returnParameters":{"id":57093,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57092,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57094,"src":"1612:7:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57091,"name":"uint256","nodeType":"ElementaryTypeName","src":"1612:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1611:9:74"},"scope":57117,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57104,"nodeType":"FunctionDefinition","src":"2274:74:74","nodes":[],"documentation":{"id":57095,"nodeType":"StructuredDocumentation","src":"1627:642:74","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2283:7:74","parameters":{"id":57100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57097,"mutability":"mutable","name":"spender","nameLocation":"2299:7:74","nodeType":"VariableDeclaration","scope":57104,"src":"2291:15:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57096,"name":"address","nodeType":"ElementaryTypeName","src":"2291:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57099,"mutability":"mutable","name":"amount","nameLocation":"2316:6:74","nodeType":"VariableDeclaration","scope":57104,"src":"2308:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2308:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2290:33:74"},"returnParameters":{"id":57103,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57102,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57104,"src":"2342:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57101,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:74"},"scope":57117,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":57116,"nodeType":"FunctionDefinition","src":"2646:88:74","nodes":[],"documentation":{"id":57105,"nodeType":"StructuredDocumentation","src":"2354:287:74","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2655:12:74","parameters":{"id":57112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57107,"mutability":"mutable","name":"from","nameLocation":"2676:4:74","nodeType":"VariableDeclaration","scope":57116,"src":"2668:12:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57106,"name":"address","nodeType":"ElementaryTypeName","src":"2668:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57109,"mutability":"mutable","name":"to","nameLocation":"2690:2:74","nodeType":"VariableDeclaration","scope":57116,"src":"2682:10:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57108,"name":"address","nodeType":"ElementaryTypeName","src":"2682:7:74","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57111,"mutability":"mutable","name":"amount","nameLocation":"2702:6:74","nodeType":"VariableDeclaration","scope":57116,"src":"2694:14:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57110,"name":"uint256","nodeType":"ElementaryTypeName","src":"2694:7:74","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2667:42:74"},"returnParameters":{"id":57115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57116,"src":"2728:4:74","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57113,"name":"bool","nodeType":"ElementaryTypeName","src":"2728:4:74","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2727:6:74"},"scope":57117,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":57042,"nodeType":"StructuredDocumentation","src":"131:70:74","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"linearizedBaseContracts":[57117],"name":"IERC20","nameLocation":"212:6:74","scope":57118,"usedErrors":[]}],"license":"MIT"},"id":74} \ No newline at end of file diff --git a/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json b/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json index dc0737ed5..563ae2bda 100644 --- a/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json +++ b/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122007690072629a893d316dc055c7b30f76109fbd6d653b64cd3f773add5f5e8c8564736f6c63430008130033","sourceMap":"290:2087:108:-:0;;;410:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;493:5;:13;501:5;493;:13;:::i;:::-;-1:-1:-1;516:7:108;:17;526:7;516;:17;:::i;:::-;-1:-1:-1;543:9:108;:21;;-1:-1:-1;;543:21:108;;;;;;;;;;;;-1:-1:-1;290:2087:108;;-1:-1:-1;290:2087:108;14:127:122;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:122;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:122;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:122:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:122;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:122;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:122;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:122;;;4142:26;4093:89;-1:-1:-1;;2897:1:122;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:122;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:122;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:122;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:122:o;:::-;290:2087:108;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea264697066735822122007690072629a893d316dc055c7b30f76109fbd6d653b64cd3f773add5f5e8c8564736f6c63430008130033","sourceMap":"290:2087:108:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:43;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:122;;1185:22;1167:41;;1155:2;1140:18;5995:573:43;1027:187:122;4847:195:43;5007:18;5001:25;4847:195;;;1365:25:122;;;1353:2;1338:18;4847:195:43;1219:177:122;1605:189:108;;;;;;:::i;:::-;;:::i;789:98::-;871:9;;789:98;;871:9;;;;1876:36:122;;1864:2;1849:18;789:98:108;1734:184:122;17096:1062:43;;;:::i;1800:184:108:-;;;;;;:::i;:::-;;:::i;893:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:43;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;681:102:108;;;:::i;1001:106::-;;;;;;:::i;:::-;;:::i;1990:184::-;;;;;;:::i;:::-;;:::i;1451:148::-;;;;;;:::i;:::-;;:::i;1270:175::-;;;;;;:::i;:::-;;:::i;14027:3010:43:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1113:151:108;;;;;;:::i;:::-;;:::i;577:98::-;631:13;663:5;656:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;:::o;5995:573:43:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:43;5995:573;;;;:::o;1605:189:108:-;1702:4;1725:62;1744:17;1756:4;1744:11;:17::i;:::-;1763:15;1775:2;1763:11;:15::i;:::-;1780:6;1725:18;:62::i;:::-;1718:69;1605:189;-1:-1:-1;;;;1605:189:108:o;17096:1062:43:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:43;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1800:184:108:-;1897:4;1920:57;1944:20;1956:7;1944:11;:20::i;:::-;1966:10;1920:23;:57::i;:::-;1913:64;1800:184;-1:-1:-1;;;1800:184:108:o;893:102::-;959:29;965:15;977:2;965:11;:15::i;:::-;982:5;959;:29::i;:::-;893:102;;:::o;681:::-;737:13;769:7;762:14;;;;;:::i;1001:106::-;1069:31;1075:17;1087:4;1075:11;:17::i;:::-;1094:5;1069;:31::i;1990:184::-;2087:4;2110:57;2134:20;2146:7;2134:11;:20::i;:::-;2156:10;2110:23;:57::i;1451:148::-;1530:4;1553:39;1568:15;1580:2;1568:11;:15::i;:::-;1585:6;1553:14;:39::i;1270:175::-;1373:65;1389:18;1401:5;1389:11;:18::i;:::-;1409:20;1421:7;1409:11;:20::i;:::-;1431:6;1373:15;:65::i;:::-;1270:175;;;:::o;14027:3010:43:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:43;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:43;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:43:o;1113:151:108:-;1204:53;1214:17;1226:4;1214:11;:17::i;:::-;1233:15;1245:2;1233:11;:15::i;:::-;1250:6;1204:9;:53::i;2180:195::-;2235:14;2352:5;2347:3;2343:15;2340:1;2337:22;2327:32;;2180:195;;;:::o;10886:2203:43:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:43;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:43;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;893:102:108;;:::o;20140:1119:43:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:43;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:43;893:102:108;;:::o;7890:1035:43:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:43;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:43;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1270:175:108;;;:::o;14:548:122:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:122:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:122;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:122;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:122:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/script/GV2ERC20.sol\":\"GV2ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/script/GV2ERC20.sol\":{\"keccak256\":\"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb\",\"dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/script/GV2ERC20.sol":"GV2ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/script/GV2ERC20.sol":{"keccak256":"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4","urls":["bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb","dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE"],"license":"AGPL-3.0-only"}},"version":1},"id":108} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220dcf4a257b616742cc55a8dc232d24ebfcadd50bfc9da04d6671cf6b34fde953964736f6c63430008130033","sourceMap":"290:2087:126:-:0;;;410:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;493:5;:13;501:5;493;:13;:::i;:::-;-1:-1:-1;516:7:126;:17;526:7;516;:17;:::i;:::-;-1:-1:-1;543:9:126;:21;;-1:-1:-1;;543:21:126;;;;;;;;;;;;-1:-1:-1;290:2087:126;;-1:-1:-1;290:2087:126;14:127:144;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:144;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:144;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:144:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:144;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:144;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:144;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:144;;;4142:26;4093:89;-1:-1:-1;;2897:1:144;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:144;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:144;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:144;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:144:o;:::-;290:2087:126;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220dcf4a257b616742cc55a8dc232d24ebfcadd50bfc9da04d6671cf6b34fde953964736f6c63430008130033","sourceMap":"290:2087:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:144;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:144;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:144;;;1353:2;1338:18;4847:195:13;1219:177:144;1605:189:126;;;;;;:::i;:::-;;:::i;789:98::-;871:9;;789:98;;871:9;;;;1876:36:144;;1864:2;1849:18;789:98:126;1734:184:144;17096:1062:13;;;:::i;1800:184:126:-;;;;;;:::i;:::-;;:::i;893:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;681:102:126;;;:::i;1001:106::-;;;;;;:::i;:::-;;:::i;1990:184::-;;;;;;:::i;:::-;;:::i;1451:148::-;;;;;;:::i;:::-;;:::i;1270:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1113:151:126;;;;;;:::i;:::-;;:::i;577:98::-;631:13;663:5;656:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1605:189:126:-;1702:4;1725:62;1744:17;1756:4;1744:11;:17::i;:::-;1763:15;1775:2;1763:11;:15::i;:::-;1780:6;1725:18;:62::i;:::-;1718:69;1605:189;-1:-1:-1;;;;1605:189:126:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1800:184:126:-;1897:4;1920:57;1944:20;1956:7;1944:11;:20::i;:::-;1966:10;1920:23;:57::i;:::-;1913:64;1800:184;-1:-1:-1;;;1800:184:126:o;893:102::-;959:29;965:15;977:2;965:11;:15::i;:::-;982:5;959;:29::i;:::-;893:102;;:::o;681:::-;737:13;769:7;762:14;;;;;:::i;1001:106::-;1069:31;1075:17;1087:4;1075:11;:17::i;:::-;1094:5;1069;:31::i;1990:184::-;2087:4;2110:57;2134:20;2146:7;2134:11;:20::i;:::-;2156:10;2110:23;:57::i;1451:148::-;1530:4;1553:39;1568:15;1580:2;1568:11;:15::i;:::-;1585:6;1553:14;:39::i;1270:175::-;1373:65;1389:18;1401:5;1389:11;:18::i;:::-;1409:20;1421:7;1409:11;:20::i;:::-;1431:6;1373:15;:65::i;:::-;1270:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1113:151:126:-;1204:53;1214:17;1226:4;1214:11;:17::i;:::-;1233:15;1245:2;1233:11;:15::i;:::-;1250:6;1204:9;:53::i;2180:195::-;2235:14;2352:5;2347:3;2343:15;2340:1;2337:22;2327:32;;2180:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;893:102:126;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;893:102:126;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1270:175:126;;;:::o;14:548:144:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:144:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:144;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:144;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:144:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/script/GV2ERC20.sol\":\"GV2ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/script/GV2ERC20.sol\":{\"keccak256\":\"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb\",\"dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/script/GV2ERC20.sol":"GV2ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/script/GV2ERC20.sol":{"keccak256":"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4","urls":["bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb","dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":72761,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":72763,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":72765,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/script/GV2ERC20.sol","id":72976,"exportedSymbols":{"ERC20":[4491],"GV2ERC20":[72975]},"nodeType":"SourceUnit","src":"42:2336:126","nodes":[{"id":72754,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72756,"nodeType":"ImportDirective","src":"68:50:126","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":72976,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":72755,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72975,"nodeType":"ContractDefinition","src":"290:2087:126","nodes":[{"id":72761,"nodeType":"VariableDeclaration","src":"323:21:126","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"339:5:126","scope":72975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":72760,"name":"string","nodeType":"ElementaryTypeName","src":"323:6:126","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":72763,"nodeType":"VariableDeclaration","src":"350:23:126","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"366:7:126","scope":72975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":72762,"name":"string","nodeType":"ElementaryTypeName","src":"350:6:126","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":72765,"nodeType":"VariableDeclaration","src":"379:24:126","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"394:9:126","scope":72975,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72764,"name":"uint8","nodeType":"ElementaryTypeName","src":"379:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":72787,"nodeType":"FunctionDefinition","src":"410:161:126","nodes":[],"body":{"id":72786,"nodeType":"Block","src":"483:88:126","nodes":[],"statements":[{"expression":{"id":72776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72774,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72761,"src":"493:5:126","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72775,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72767,"src":"501:5:126","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"493:13:126","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":72777,"nodeType":"ExpressionStatement","src":"493:13:126"},{"expression":{"id":72780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72778,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72763,"src":"516:7:126","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72779,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72769,"src":"526:7:126","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"516:17:126","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":72781,"nodeType":"ExpressionStatement","src":"516:17:126"},{"expression":{"id":72784,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72782,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72765,"src":"543:9:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72783,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72771,"src":"555:9:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"543:21:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":72785,"nodeType":"ExpressionStatement","src":"543:21:126"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":72772,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72767,"mutability":"mutable","name":"name_","nameLocation":"436:5:126","nodeType":"VariableDeclaration","scope":72787,"src":"422:19:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72766,"name":"string","nodeType":"ElementaryTypeName","src":"422:6:126","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":72769,"mutability":"mutable","name":"symbol_","nameLocation":"457:7:126","nodeType":"VariableDeclaration","scope":72787,"src":"443:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72768,"name":"string","nodeType":"ElementaryTypeName","src":"443:6:126","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":72771,"mutability":"mutable","name":"decimals_","nameLocation":"472:9:126","nodeType":"VariableDeclaration","scope":72787,"src":"466:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72770,"name":"uint8","nodeType":"ElementaryTypeName","src":"466:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"421:61:126"},"returnParameters":{"id":72773,"nodeType":"ParameterList","parameters":[],"src":"483:0:126"},"scope":72975,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":72796,"nodeType":"FunctionDefinition","src":"577:98:126","nodes":[],"body":{"id":72795,"nodeType":"Block","src":"646:29:126","nodes":[],"statements":[{"expression":{"id":72793,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72761,"src":"663:5:126","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":72792,"id":72794,"nodeType":"Return","src":"656:12:126"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"586:4:126","overrides":{"id":72789,"nodeType":"OverrideSpecifier","overrides":[],"src":"613:8:126"},"parameters":{"id":72788,"nodeType":"ParameterList","parameters":[],"src":"590:2:126"},"returnParameters":{"id":72792,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72791,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72796,"src":"631:13:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72790,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:126","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"630:15:126"},"scope":72975,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72805,"nodeType":"FunctionDefinition","src":"681:102:126","nodes":[],"body":{"id":72804,"nodeType":"Block","src":"752:31:126","nodes":[],"statements":[{"expression":{"id":72802,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72763,"src":"769:7:126","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":72801,"id":72803,"nodeType":"Return","src":"762:14:126"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"690:6:126","overrides":{"id":72798,"nodeType":"OverrideSpecifier","overrides":[],"src":"719:8:126"},"parameters":{"id":72797,"nodeType":"ParameterList","parameters":[],"src":"696:2:126"},"returnParameters":{"id":72801,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72800,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72805,"src":"737:13:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72799,"name":"string","nodeType":"ElementaryTypeName","src":"737:6:126","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"736:15:126"},"scope":72975,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72814,"nodeType":"FunctionDefinition","src":"789:98:126","nodes":[],"body":{"id":72813,"nodeType":"Block","src":"854:33:126","nodes":[],"statements":[{"expression":{"id":72811,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72765,"src":"871:9:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":72810,"id":72812,"nodeType":"Return","src":"864:16:126"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"798:8:126","overrides":{"id":72807,"nodeType":"OverrideSpecifier","overrides":[],"src":"829:8:126"},"parameters":{"id":72806,"nodeType":"ParameterList","parameters":[],"src":"806:2:126"},"returnParameters":{"id":72810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72809,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72814,"src":"847:5:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72808,"name":"uint8","nodeType":"ElementaryTypeName","src":"847:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"846:7:126"},"scope":72975,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72829,"nodeType":"FunctionDefinition","src":"893:102:126","nodes":[],"body":{"id":72828,"nodeType":"Block","src":"949:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72823,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72816,"src":"977:2:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72822,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"965:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"965:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72825,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72818,"src":"982:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72821,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"959:5:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":72826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"959:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72827,"nodeType":"ExpressionStatement","src":"959:29:126"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"902:4:126","parameters":{"id":72819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72816,"mutability":"mutable","name":"to","nameLocation":"915:2:126","nodeType":"VariableDeclaration","scope":72829,"src":"907:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72815,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72818,"mutability":"mutable","name":"value","nameLocation":"927:5:126","nodeType":"VariableDeclaration","scope":72829,"src":"919:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72817,"name":"uint256","nodeType":"ElementaryTypeName","src":"919:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"906:27:126"},"returnParameters":{"id":72820,"nodeType":"ParameterList","parameters":[],"src":"949:0:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72844,"nodeType":"FunctionDefinition","src":"1001:106:126","nodes":[],"body":{"id":72843,"nodeType":"Block","src":"1059:48:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72838,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72831,"src":"1087:4:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72837,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1075:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72839,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1075:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72840,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72833,"src":"1094:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72836,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1069:5:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":72841,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1069:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72842,"nodeType":"ExpressionStatement","src":"1069:31:126"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1010:4:126","parameters":{"id":72834,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72831,"mutability":"mutable","name":"from","nameLocation":"1023:4:126","nodeType":"VariableDeclaration","scope":72844,"src":"1015:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72830,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72833,"mutability":"mutable","name":"value","nameLocation":"1037:5:126","nodeType":"VariableDeclaration","scope":72844,"src":"1029:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72832,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:29:126"},"returnParameters":{"id":72835,"nodeType":"ParameterList","parameters":[],"src":"1059:0:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72864,"nodeType":"FunctionDefinition","src":"1113:151:126","nodes":[],"body":{"id":72863,"nodeType":"Block","src":"1194:70:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72855,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72846,"src":"1226:4:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72854,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1214:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72858,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72848,"src":"1245:2:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72857,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1233:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1233:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72860,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72850,"src":"1250:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72853,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1204:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":72861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1204:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72862,"nodeType":"ExpressionStatement","src":"1204:53:126"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1122:14:126","parameters":{"id":72851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72846,"mutability":"mutable","name":"from","nameLocation":"1145:4:126","nodeType":"VariableDeclaration","scope":72864,"src":"1137:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72845,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72848,"mutability":"mutable","name":"to","nameLocation":"1159:2:126","nodeType":"VariableDeclaration","scope":72864,"src":"1151:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72847,"name":"address","nodeType":"ElementaryTypeName","src":"1151:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72850,"mutability":"mutable","name":"amount","nameLocation":"1171:6:126","nodeType":"VariableDeclaration","scope":72864,"src":"1163:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1136:42:126"},"returnParameters":{"id":72852,"nodeType":"ParameterList","parameters":[],"src":"1194:0:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72884,"nodeType":"FunctionDefinition","src":"1270:175:126","nodes":[],"body":{"id":72883,"nodeType":"Block","src":"1363:82:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72875,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72866,"src":"1401:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72874,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1389:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1389:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72878,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72868,"src":"1421:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72877,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1409:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72880,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72870,"src":"1431:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72873,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1373:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":72881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72882,"nodeType":"ExpressionStatement","src":"1373:65:126"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1279:20:126","parameters":{"id":72871,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72866,"mutability":"mutable","name":"owner","nameLocation":"1308:5:126","nodeType":"VariableDeclaration","scope":72884,"src":"1300:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72865,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72868,"mutability":"mutable","name":"spender","nameLocation":"1323:7:126","nodeType":"VariableDeclaration","scope":72884,"src":"1315:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72867,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72870,"mutability":"mutable","name":"amount","nameLocation":"1340:6:126","nodeType":"VariableDeclaration","scope":72884,"src":"1332:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72869,"name":"uint256","nodeType":"ElementaryTypeName","src":"1332:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1299:48:126"},"returnParameters":{"id":72872,"nodeType":"ParameterList","parameters":[],"src":"1363:0:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72903,"nodeType":"FunctionDefinition","src":"1451:148:126","nodes":[],"body":{"id":72902,"nodeType":"Block","src":"1536:63:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72897,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72886,"src":"1580:2:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72896,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1568:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72898,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72899,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72888,"src":"1585:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72894,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1553:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72975_$","typeString":"type(contract super GV2ERC20)"}},"id":72895,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1559:8:126","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1553:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72893,"id":72901,"nodeType":"Return","src":"1546:46:126"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1460:8:126","overrides":{"id":72890,"nodeType":"OverrideSpecifier","overrides":[],"src":"1512:8:126"},"parameters":{"id":72889,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72886,"mutability":"mutable","name":"to","nameLocation":"1477:2:126","nodeType":"VariableDeclaration","scope":72903,"src":"1469:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72885,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72888,"mutability":"mutable","name":"amount","nameLocation":"1489:6:126","nodeType":"VariableDeclaration","scope":72903,"src":"1481:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72887,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1468:28:126"},"returnParameters":{"id":72893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72892,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72903,"src":"1530:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72891,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1529:6:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72927,"nodeType":"FunctionDefinition","src":"1605:189:126","nodes":[],"body":{"id":72926,"nodeType":"Block","src":"1708:86:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72918,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"1756:4:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72917,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1744:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1744:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72921,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"1775:2:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72920,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1763:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72923,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"1780:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72915,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1725:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72975_$","typeString":"type(contract super GV2ERC20)"}},"id":72916,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:12:126","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1725:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":72924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:62:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72914,"id":72925,"nodeType":"Return","src":"1718:69:126"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1614:12:126","overrides":{"id":72911,"nodeType":"OverrideSpecifier","overrides":[],"src":"1684:8:126"},"parameters":{"id":72910,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72905,"mutability":"mutable","name":"from","nameLocation":"1635:4:126","nodeType":"VariableDeclaration","scope":72927,"src":"1627:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72904,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72907,"mutability":"mutable","name":"to","nameLocation":"1649:2:126","nodeType":"VariableDeclaration","scope":72927,"src":"1641:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72906,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72909,"mutability":"mutable","name":"amount","nameLocation":"1661:6:126","nodeType":"VariableDeclaration","scope":72927,"src":"1653:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72908,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1626:42:126"},"returnParameters":{"id":72914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72913,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72927,"src":"1702:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72912,"name":"bool","nodeType":"ElementaryTypeName","src":"1702:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1701:6:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72946,"nodeType":"FunctionDefinition","src":"1800:184:126","nodes":[],"body":{"id":72945,"nodeType":"Block","src":"1903:81:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72940,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72929,"src":"1956:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72939,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"1944:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72942,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72931,"src":"1966:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72937,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1920:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72975_$","typeString":"type(contract super GV2ERC20)"}},"id":72938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1926:17:126","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1920:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72943,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72936,"id":72944,"nodeType":"Return","src":"1913:64:126"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1809:17:126","overrides":{"id":72933,"nodeType":"OverrideSpecifier","overrides":[],"src":"1879:8:126"},"parameters":{"id":72932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72929,"mutability":"mutable","name":"spender","nameLocation":"1835:7:126","nodeType":"VariableDeclaration","scope":72946,"src":"1827:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72928,"name":"address","nodeType":"ElementaryTypeName","src":"1827:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72931,"mutability":"mutable","name":"difference","nameLocation":"1852:10:126","nodeType":"VariableDeclaration","scope":72946,"src":"1844:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72930,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:37:126"},"returnParameters":{"id":72936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72946,"src":"1897:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72934,"name":"bool","nodeType":"ElementaryTypeName","src":"1897:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1896:6:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72965,"nodeType":"FunctionDefinition","src":"1990:184:126","nodes":[],"body":{"id":72964,"nodeType":"Block","src":"2093:81:126","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72959,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72948,"src":"2146:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72958,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72974,"src":"2134:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72960,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72961,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72950,"src":"2156:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72956,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2110:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72975_$","typeString":"type(contract super GV2ERC20)"}},"id":72957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2116:17:126","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2110:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72955,"id":72963,"nodeType":"Return","src":"2103:64:126"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1999:17:126","overrides":{"id":72952,"nodeType":"OverrideSpecifier","overrides":[],"src":"2069:8:126"},"parameters":{"id":72951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72948,"mutability":"mutable","name":"spender","nameLocation":"2025:7:126","nodeType":"VariableDeclaration","scope":72965,"src":"2017:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72947,"name":"address","nodeType":"ElementaryTypeName","src":"2017:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72950,"mutability":"mutable","name":"difference","nameLocation":"2042:10:126","nodeType":"VariableDeclaration","scope":72965,"src":"2034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72949,"name":"uint256","nodeType":"ElementaryTypeName","src":"2034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2016:37:126"},"returnParameters":{"id":72955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72954,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72965,"src":"2087:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72953,"name":"bool","nodeType":"ElementaryTypeName","src":"2087:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2086:6:126"},"scope":72975,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72974,"nodeType":"FunctionDefinition","src":"2180:195:126","nodes":[],"body":{"id":72973,"nodeType":"Block","src":"2251:124:126","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2313:56:126","statements":[{"nodeType":"YulAssignment","src":"2327:32:126","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2340:1:126"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2347:3:126","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2352:3:126"},"nodeType":"YulFunctionCall","src":"2352:5:126"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2343:3:126"},"nodeType":"YulFunctionCall","src":"2343:15:126"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2337:2:126"},"nodeType":"YulFunctionCall","src":"2337:22:126"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2327:6:126"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":72967,"isOffset":false,"isSlot":false,"src":"2340:1:126","valueSize":1},{"declaration":72970,"isOffset":false,"isSlot":false,"src":"2327:6:126","valueSize":1}],"id":72972,"nodeType":"InlineAssembly","src":"2304:65:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2189:11:126","parameters":{"id":72968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72967,"mutability":"mutable","name":"a","nameLocation":"2209:1:126","nodeType":"VariableDeclaration","scope":72974,"src":"2201:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72966,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:11:126"},"returnParameters":{"id":72971,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72970,"mutability":"mutable","name":"result","nameLocation":"2243:6:126","nodeType":"VariableDeclaration","scope":72974,"src":"2235:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72969,"name":"address","nodeType":"ElementaryTypeName","src":"2235:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2234:16:126"},"scope":72975,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":72758,"name":"ERC20","nameLocations":["311:5:126"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"311:5:126"},"id":72759,"nodeType":"InheritanceSpecifier","src":"311:5:126"}],"canonicalName":"GV2ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":72757,"nodeType":"StructuredDocumentation","src":"120:170:126","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[72975,4491],"name":"GV2ERC20","nameLocation":"299:8:126","scope":72976,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file diff --git a/pkg/contracts/out/IAllo.sol/IAllo.json b/pkg/contracts/out/IAllo.sol/IAllo.json index ef542ce21..eadd674f1 100644 --- a/pkg/contracts/out/IAllo.sol/IAllo.json +++ b/pkg/contracts/out/IAllo.sol/IAllo.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"addPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addToCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"batchAllocate","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_datas","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterRecipient","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"distribute","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeDenominator","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPercentFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"getStrategy","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTreasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_registry","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address payable"},{"name":"_percentFee","type":"uint256","internalType":"uint256"},{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCloneableStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolAdmin","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"removeFromCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBaseFee","inputs":[{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePercentFee","inputs":[{"name":"_percentFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePoolMetadata","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRegistry","inputs":[{"name":"_registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BaseFeePaid","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BaseFeeUpdated","inputs":[{"name":"baseFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PercentFeeUpdated","inputs":[{"name":"percentFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"PoolFunded","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolMetadataUpdated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyApproved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryUpdated","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addPoolManager(uint256,address)":"2cf682b0","addToCloneableStrategies(address)":"41bba0b4","allocate(uint256,bytes)":"2ec38188","batchAllocate(uint256[],bytes[])":"c6dff1cf","batchRegisterRecipient(uint256[],bytes[])":"1a20bd88","distribute(uint256,address[],bytes)":"3a5fbd92","fundPool(uint256,uint256)":"5acd6fac","getBaseFee()":"15e812ad","getFeeDenominator()":"f4e1fc41","getPercentFee()":"4edbaadc","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53","getStrategy(uint256)":"cfc0cc34","getTreasury()":"3b19e84a","initialize(address,address,address,uint256,uint256)":"a6b63eb8","isCloneableStrategy(address)":"ab2ec589","isPoolAdmin(uint256,address)":"ab3febc6","isPoolManager(uint256,address)":"29e40d4b","recoverFunds(address,address)":"24ae6a27","registerRecipient(uint256,bytes)":"075c0e9c","removeFromCloneableStrategies(address)":"031e2fa1","removePoolManager(uint256,address)":"7f5a70bd","updateBaseFee(uint256)":"8e690186","updatePercentFee(uint256)":"f54fc4a0","updatePoolMetadata(uint256,(uint256,string))":"5f9ca138","updateRegistry(address)":"1a5da6c8","updateTreasury(address)":"7f51bb1f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BaseFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentFee\",\"type\":\"uint256\"}],\"name\":\"PercentFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"PoolFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"addToCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_datas\",\"type\":\"bytes[]\"}],\"name\":\"batchAllocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"batchRegisterRecipient\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"fundPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getStrategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"isCloneableStrategy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeFromCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removePoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"updateBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"}],\"name\":\"updatePercentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updatePoolMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"params\":{\"amount\":\"Amount of the base fee paid\",\"poolId\":\"ID of the pool the base fee was paid for\"}},\"BaseFeeUpdated(uint256)\":{\"params\":{\"baseFee\":\"New base fee amount\"}},\"PercentFeeUpdated(uint256)\":{\"params\":{\"percentFee\":\"New percentage for the fee\"}},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"params\":{\"amount\":\"Amount pool was funded with when created\",\"metadata\":\"Pool metadata\",\"poolId\":\"ID of the pool created\",\"profileId\":\"ID of the profile the pool is associated with\",\"strategy\":\"Address of the strategy contract\",\"token\":\"Address of the token pool was funded with when created\"}},\"PoolFunded(uint256,uint256,uint256)\":{\"params\":{\"amount\":\"Amount funded to the pool\",\"fee\":\"Amount of the fee paid to the treasury\",\"poolId\":\"ID of the pool funded\"}},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"params\":{\"metadata\":\"Pool metadata that was updated\",\"poolId\":\"ID of the pool updated\"}},\"RegistryUpdated(address)\":{\"params\":{\"registry\":\"Address of the new registry\"}},\"StrategyApproved(address)\":{\"params\":{\"strategy\":\"Address of the strategy approved\"}},\"StrategyRemoved(address)\":{\"params\":{\"strategy\":\"Address of the strategy removed\"}},\"TreasuryUpdated(address)\":{\"params\":{\"treasury\":\"Address of the new treasury\"}}},\"kind\":\"dev\",\"methods\":{\"addPoolManager(uint256,address)\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address of the manager to add\",\"_poolId\":\"The ID of the pool to add the manager to\"}},\"addToCloneableStrategies(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_strategy\":\"The address of the strategy to add\"}},\"allocate(uint256,bytes)\":{\"details\":\"Each strategy will handle the allocation of funds differently.\",\"params\":{\"_data\":\"The data to pass to the strategy and may be handled differently by each strategy.\",\"_poolId\":\"The ID of the pool to allocate funds from\"}},\"batchAllocate(uint256[],bytes[])\":{\"details\":\"Each strategy will handle the allocation of funds differently\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"params\":{\"_data\":\"The data to pass to the strategy and may be handled differently by each strategy\",\"_poolIds\":\"The pool ID's to register the recipients for\"}},\"distribute(uint256,address[],bytes)\":{\"details\":\"Each strategy will handle the distribution of funds differently\",\"params\":{\"_data\":\"The data to pass to the strategy and may be handled differently by each strategy\",\"_poolId\":\"The ID of the pool to distribute from\",\"_recipientIds\":\"The recipient ids to distribute to\"}},\"fundPool(uint256,uint256)\":{\"details\":\"'msg.value' must be greater than 0 if the token is the native token or '_amount' must be greater than 0 if the token is not the native token.\",\"params\":{\"_amount\":\"The amount to fund the pool with\",\"_poolId\":\"The ID of the pool to fund\"}},\"getBaseFee()\":{\"returns\":{\"_0\":\"baseFee The current base fee\"}},\"getFeeDenominator()\":{\"details\":\"1e18 represents 100%\",\"returns\":{\"_0\":\"feeDenominator The current fee denominator\"}},\"getPercentFee()\":{\"returns\":{\"_0\":\"percentFee The current percentage for the fee\"}},\"getPool(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"pool The 'Pool' struct for the ID of the pool passed in\"}},\"getRegistry()\":{\"returns\":{\"_0\":\"registry The current registry address\"}},\"getStrategy(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"strategy The address of the strategy for the ID of the pool passed in\"}},\"getTreasury()\":{\"returns\":{\"_0\":\"treasury The current treasury address\"}},\"initialize(address,address,address,uint256,uint256)\":{\"params\":{\"_baseFee\":\"Base fee amount\",\"_owner\":\"Address of the owner\",\"_percentFee\":\"Percentage for the fee\",\"_registry\":\"Address of the registry contract\",\"_treasury\":\"Address of the treasury\"}},\"isCloneableStrategy(address)\":{\"params\":{\"_strategy\":\"The address of the strategy to check\"},\"returns\":{\"_0\":\"'true' if the '_strategy' is cloneable, otherwise 'false'\"}},\"isPoolAdmin(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"'true' if the '_address' is a pool admin, otherwise 'false'\"}},\"isPoolManager(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"'true' if the '_address' is a pool manager, otherwise 'false'\"}},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_recipient\":\"The address to send the recovered funds to\",\"_token\":\"The token to recover\"}},\"registerRecipient(uint256,bytes)\":{\"params\":{\"_poolId\":\"The ID of the pool to register the recipient for\"}},\"removeFromCloneableStrategies(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_strategy\":\"The address of the strategy to remove\"}},\"removePoolManager(uint256,address)\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address of the manager to remove\",\"_poolId\":\"The ID of the pool to remove the manager from\"}},\"updateBaseFee(uint256)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_baseFee\":\"The new base fee\"}},\"updatePercentFee(uint256)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_percentFee\":\"The new percentage for the fee\"}},\"updatePoolMetadata(uint256,(uint256,string))\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_metadata\":\"The new metadata to set\",\"_poolId\":\"The ID of the pool to update\"}},\"updateRegistry(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_registry\":\"The new registry address\"}},\"updateTreasury(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_treasury\":\"The new treasury address\"}}},\"title\":\"Allo Interface\",\"version\":1},\"userdoc\":{\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"notice\":\"Emitted when the base fee is paid\"},\"BaseFeeUpdated(uint256)\":{\"notice\":\"Emitted when the base fee is updated\"},\"PercentFeeUpdated(uint256)\":{\"notice\":\"Emitted when the percent fee is updated\"},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"notice\":\"Event emitted when a new pool is created\"},\"PoolFunded(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a pool is funded\"},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"notice\":\"Emitted when a pools metadata is updated\"},\"RegistryUpdated(address)\":{\"notice\":\"Emitted when the registry address is updated\"},\"StrategyApproved(address)\":{\"notice\":\"Emitted when a strategy is approved and added to the cloneable strategies\"},\"StrategyRemoved(address)\":{\"notice\":\"Emitted when a strategy is removed from the cloneable strategies\"},\"TreasuryUpdated(address)\":{\"notice\":\"Emitted when the treasury address is updated\"}},\"kind\":\"user\",\"methods\":{\"addPoolManager(uint256,address)\":{\"notice\":\"Adds a pool manager to the pool.\"},\"addToCloneableStrategies(address)\":{\"notice\":\"Adds a strategy to the cloneable strategies.\"},\"allocate(uint256,bytes)\":{\"notice\":\"Allocates funds to a recipient.\"},\"batchAllocate(uint256[],bytes[])\":{\"notice\":\"Allocates funds to multiple recipients.\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"notice\":\"Registers a batch of recipients.\"},\"distribute(uint256,address[],bytes)\":{\"notice\":\"Distributes funds to recipients and emits {Distributed} event if successful\"},\"fundPool(uint256,uint256)\":{\"notice\":\"Funds a pool.\"},\"getBaseFee()\":{\"notice\":\"Returns the current base fee\"},\"getFeeDenominator()\":{\"notice\":\"Returns the current fee denominator\"},\"getPercentFee()\":{\"notice\":\"Returns the current percent fee\"},\"getPool(uint256)\":{\"notice\":\"Returns the 'Pool' struct for a given 'poolId'\"},\"getRegistry()\":{\"notice\":\"Returns the current registry address\"},\"getStrategy(uint256)\":{\"notice\":\"Returns the address of the strategy for a given 'poolId'\"},\"getTreasury()\":{\"notice\":\"Returns the current treasury address\"},\"initialize(address,address,address,uint256,uint256)\":{\"notice\":\"Initialize the Allo contract\"},\"isCloneableStrategy(address)\":{\"notice\":\"Checks if a strategy is cloneable (is in the cloneableStrategies mapping).\"},\"isPoolAdmin(uint256,address)\":{\"notice\":\"Checks if an address is a pool admin.\"},\"isPoolManager(uint256,address)\":{\"notice\":\"Checks if an address is a pool manager.\"},\"recoverFunds(address,address)\":{\"notice\":\"Recovers funds from a pool.\"},\"registerRecipient(uint256,bytes)\":{\"notice\":\"Registers a recipient and emits {Registered} event if successful and may be handled differently by each strategy.\"},\"removeFromCloneableStrategies(address)\":{\"notice\":\"Removes a strategy from the cloneable strategies.\"},\"removePoolManager(uint256,address)\":{\"notice\":\"Removes a pool manager from the pool.\"},\"updateBaseFee(uint256)\":{\"notice\":\"Updates the base fee.\"},\"updatePercentFee(uint256)\":{\"notice\":\"Updates the percentage for the fee.\"},\"updatePoolMetadata(uint256,(uint256,string))\":{\"notice\":\"Updates a pools metadata.\"},\"updateRegistry(address)\":{\"notice\":\"Update the registry address.\"},\"updateTreasury(address)\":{\"notice\":\"Updates the treasury address.\"}},\"notice\":\"Interface for the Allo contract. It exposes all functions needed to use the Allo protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":\"IAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BaseFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256","indexed":false}],"type":"event","name":"BaseFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"percentFee","type":"uint256","indexed":false}],"type":"event","name":"PercentFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"PoolFunded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"registry","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasuryUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPoolManager"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterRecipient","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundPool"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPercentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStrategy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_percentFee","type":"uint256"},{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"isCloneableStrategy","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFromCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePoolManager"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateBaseFee"},{"inputs":[{"internalType":"uint256","name":"_percentFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updatePercentFee"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePoolMetadata"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRegistry"},{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTreasury"}],"devdoc":{"kind":"dev","methods":{"addPoolManager(uint256,address)":{"details":"'msg.sender' must be a pool admin.","params":{"_manager":"The address of the manager to add","_poolId":"The ID of the pool to add the manager to"}},"addToCloneableStrategies(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_strategy":"The address of the strategy to add"}},"allocate(uint256,bytes)":{"details":"Each strategy will handle the allocation of funds differently.","params":{"_data":"The data to pass to the strategy and may be handled differently by each strategy.","_poolId":"The ID of the pool to allocate funds from"}},"batchAllocate(uint256[],bytes[])":{"details":"Each strategy will handle the allocation of funds differently"},"batchRegisterRecipient(uint256[],bytes[])":{"params":{"_data":"The data to pass to the strategy and may be handled differently by each strategy","_poolIds":"The pool ID's to register the recipients for"}},"distribute(uint256,address[],bytes)":{"details":"Each strategy will handle the distribution of funds differently","params":{"_data":"The data to pass to the strategy and may be handled differently by each strategy","_poolId":"The ID of the pool to distribute from","_recipientIds":"The recipient ids to distribute to"}},"fundPool(uint256,uint256)":{"details":"'msg.value' must be greater than 0 if the token is the native token or '_amount' must be greater than 0 if the token is not the native token.","params":{"_amount":"The amount to fund the pool with","_poolId":"The ID of the pool to fund"}},"getBaseFee()":{"returns":{"_0":"baseFee The current base fee"}},"getFeeDenominator()":{"details":"1e18 represents 100%","returns":{"_0":"feeDenominator The current fee denominator"}},"getPercentFee()":{"returns":{"_0":"percentFee The current percentage for the fee"}},"getPool(uint256)":{"params":{"_poolId":"The ID of the pool to check"},"returns":{"_0":"pool The 'Pool' struct for the ID of the pool passed in"}},"getRegistry()":{"returns":{"_0":"registry The current registry address"}},"getStrategy(uint256)":{"params":{"_poolId":"The ID of the pool to check"},"returns":{"_0":"strategy The address of the strategy for the ID of the pool passed in"}},"getTreasury()":{"returns":{"_0":"treasury The current treasury address"}},"initialize(address,address,address,uint256,uint256)":{"params":{"_baseFee":"Base fee amount","_owner":"Address of the owner","_percentFee":"Percentage for the fee","_registry":"Address of the registry contract","_treasury":"Address of the treasury"}},"isCloneableStrategy(address)":{"params":{"_strategy":"The address of the strategy to check"},"returns":{"_0":"'true' if the '_strategy' is cloneable, otherwise 'false'"}},"isPoolAdmin(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool to check"},"returns":{"_0":"'true' if the '_address' is a pool admin, otherwise 'false'"}},"isPoolManager(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool to check"},"returns":{"_0":"'true' if the '_address' is a pool manager, otherwise 'false'"}},"recoverFunds(address,address)":{"details":"'msg.sender' must be a pool admin.","params":{"_recipient":"The address to send the recovered funds to","_token":"The token to recover"}},"registerRecipient(uint256,bytes)":{"params":{"_poolId":"The ID of the pool to register the recipient for"}},"removeFromCloneableStrategies(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_strategy":"The address of the strategy to remove"}},"removePoolManager(uint256,address)":{"details":"'msg.sender' must be a pool admin.","params":{"_manager":"The address of the manager to remove","_poolId":"The ID of the pool to remove the manager from"}},"updateBaseFee(uint256)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_baseFee":"The new base fee"}},"updatePercentFee(uint256)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_percentFee":"The new percentage for the fee"}},"updatePoolMetadata(uint256,(uint256,string))":{"details":"'msg.sender' must be a pool admin.","params":{"_metadata":"The new metadata to set","_poolId":"The ID of the pool to update"}},"updateRegistry(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_registry":"The new registry address"}},"updateTreasury(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_treasury":"The new treasury address"}}},"version":1},"userdoc":{"kind":"user","methods":{"addPoolManager(uint256,address)":{"notice":"Adds a pool manager to the pool."},"addToCloneableStrategies(address)":{"notice":"Adds a strategy to the cloneable strategies."},"allocate(uint256,bytes)":{"notice":"Allocates funds to a recipient."},"batchAllocate(uint256[],bytes[])":{"notice":"Allocates funds to multiple recipients."},"batchRegisterRecipient(uint256[],bytes[])":{"notice":"Registers a batch of recipients."},"distribute(uint256,address[],bytes)":{"notice":"Distributes funds to recipients and emits {Distributed} event if successful"},"fundPool(uint256,uint256)":{"notice":"Funds a pool."},"getBaseFee()":{"notice":"Returns the current base fee"},"getFeeDenominator()":{"notice":"Returns the current fee denominator"},"getPercentFee()":{"notice":"Returns the current percent fee"},"getPool(uint256)":{"notice":"Returns the 'Pool' struct for a given 'poolId'"},"getRegistry()":{"notice":"Returns the current registry address"},"getStrategy(uint256)":{"notice":"Returns the address of the strategy for a given 'poolId'"},"getTreasury()":{"notice":"Returns the current treasury address"},"initialize(address,address,address,uint256,uint256)":{"notice":"Initialize the Allo contract"},"isCloneableStrategy(address)":{"notice":"Checks if a strategy is cloneable (is in the cloneableStrategies mapping)."},"isPoolAdmin(uint256,address)":{"notice":"Checks if an address is a pool admin."},"isPoolManager(uint256,address)":{"notice":"Checks if an address is a pool manager."},"recoverFunds(address,address)":{"notice":"Recovers funds from a pool."},"registerRecipient(uint256,bytes)":{"notice":"Registers a recipient and emits {Registered} event if successful and may be handled differently by each strategy."},"removeFromCloneableStrategies(address)":{"notice":"Removes a strategy from the cloneable strategies."},"removePoolManager(uint256,address)":{"notice":"Removes a pool manager from the pool."},"updateBaseFee(uint256)":{"notice":"Updates the base fee."},"updatePercentFee(uint256)":{"notice":"Updates the percentage for the fee."},"updatePoolMetadata(uint256,(uint256,string))":{"notice":"Updates a pools metadata."},"updateRegistry(address)":{"notice":"Update the registry address."},"updateTreasury(address)":{"notice":"Updates the treasury address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":"IAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"}},"version":1},"id":3} \ No newline at end of file +{"abi":[{"type":"function","name":"addPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addToCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"batchAllocate","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_datas","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterRecipient","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"distribute","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeDenominator","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPercentFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"getStrategy","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTreasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_registry","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address payable"},{"name":"_percentFee","type":"uint256","internalType":"uint256"},{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCloneableStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolAdmin","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"removeFromCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateBaseFee","inputs":[{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePercentFee","inputs":[{"name":"_percentFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePoolMetadata","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRegistry","inputs":[{"name":"_registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BaseFeePaid","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BaseFeeUpdated","inputs":[{"name":"baseFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PercentFeeUpdated","inputs":[{"name":"percentFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"PoolFunded","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolMetadataUpdated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyApproved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryUpdated","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"addPoolManager(uint256,address)":"2cf682b0","addToCloneableStrategies(address)":"41bba0b4","allocate(uint256,bytes)":"2ec38188","batchAllocate(uint256[],bytes[])":"c6dff1cf","batchRegisterRecipient(uint256[],bytes[])":"1a20bd88","distribute(uint256,address[],bytes)":"3a5fbd92","fundPool(uint256,uint256)":"5acd6fac","getBaseFee()":"15e812ad","getFeeDenominator()":"f4e1fc41","getPercentFee()":"4edbaadc","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53","getStrategy(uint256)":"cfc0cc34","getTreasury()":"3b19e84a","initialize(address,address,address,uint256,uint256)":"a6b63eb8","isCloneableStrategy(address)":"ab2ec589","isPoolAdmin(uint256,address)":"ab3febc6","isPoolManager(uint256,address)":"29e40d4b","recoverFunds(address,address)":"24ae6a27","registerRecipient(uint256,bytes)":"075c0e9c","removeFromCloneableStrategies(address)":"031e2fa1","removePoolManager(uint256,address)":"7f5a70bd","updateBaseFee(uint256)":"8e690186","updatePercentFee(uint256)":"f54fc4a0","updatePoolMetadata(uint256,(uint256,string))":"5f9ca138","updateRegistry(address)":"1a5da6c8","updateTreasury(address)":"7f51bb1f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BaseFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentFee\",\"type\":\"uint256\"}],\"name\":\"PercentFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"PoolFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"addToCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_datas\",\"type\":\"bytes[]\"}],\"name\":\"batchAllocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"batchRegisterRecipient\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"fundPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getStrategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"isCloneableStrategy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeFromCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removePoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"updateBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"}],\"name\":\"updatePercentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updatePoolMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"params\":{\"amount\":\"Amount of the base fee paid\",\"poolId\":\"ID of the pool the base fee was paid for\"}},\"BaseFeeUpdated(uint256)\":{\"params\":{\"baseFee\":\"New base fee amount\"}},\"PercentFeeUpdated(uint256)\":{\"params\":{\"percentFee\":\"New percentage for the fee\"}},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"params\":{\"amount\":\"Amount pool was funded with when created\",\"metadata\":\"Pool metadata\",\"poolId\":\"ID of the pool created\",\"profileId\":\"ID of the profile the pool is associated with\",\"strategy\":\"Address of the strategy contract\",\"token\":\"Address of the token pool was funded with when created\"}},\"PoolFunded(uint256,uint256,uint256)\":{\"params\":{\"amount\":\"Amount funded to the pool\",\"fee\":\"Amount of the fee paid to the treasury\",\"poolId\":\"ID of the pool funded\"}},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"params\":{\"metadata\":\"Pool metadata that was updated\",\"poolId\":\"ID of the pool updated\"}},\"RegistryUpdated(address)\":{\"params\":{\"registry\":\"Address of the new registry\"}},\"StrategyApproved(address)\":{\"params\":{\"strategy\":\"Address of the strategy approved\"}},\"StrategyRemoved(address)\":{\"params\":{\"strategy\":\"Address of the strategy removed\"}},\"TreasuryUpdated(address)\":{\"params\":{\"treasury\":\"Address of the new treasury\"}}},\"kind\":\"dev\",\"methods\":{\"addPoolManager(uint256,address)\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address of the manager to add\",\"_poolId\":\"The ID of the pool to add the manager to\"}},\"addToCloneableStrategies(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_strategy\":\"The address of the strategy to add\"}},\"allocate(uint256,bytes)\":{\"details\":\"Each strategy will handle the allocation of funds differently.\",\"params\":{\"_data\":\"The data to pass to the strategy and may be handled differently by each strategy.\",\"_poolId\":\"The ID of the pool to allocate funds from\"}},\"batchAllocate(uint256[],bytes[])\":{\"details\":\"Each strategy will handle the allocation of funds differently\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"params\":{\"_data\":\"The data to pass to the strategy and may be handled differently by each strategy\",\"_poolIds\":\"The pool ID's to register the recipients for\"}},\"distribute(uint256,address[],bytes)\":{\"details\":\"Each strategy will handle the distribution of funds differently\",\"params\":{\"_data\":\"The data to pass to the strategy and may be handled differently by each strategy\",\"_poolId\":\"The ID of the pool to distribute from\",\"_recipientIds\":\"The recipient ids to distribute to\"}},\"fundPool(uint256,uint256)\":{\"details\":\"'msg.value' must be greater than 0 if the token is the native token or '_amount' must be greater than 0 if the token is not the native token.\",\"params\":{\"_amount\":\"The amount to fund the pool with\",\"_poolId\":\"The ID of the pool to fund\"}},\"getBaseFee()\":{\"returns\":{\"_0\":\"baseFee The current base fee\"}},\"getFeeDenominator()\":{\"details\":\"1e18 represents 100%\",\"returns\":{\"_0\":\"feeDenominator The current fee denominator\"}},\"getPercentFee()\":{\"returns\":{\"_0\":\"percentFee The current percentage for the fee\"}},\"getPool(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"pool The 'Pool' struct for the ID of the pool passed in\"}},\"getRegistry()\":{\"returns\":{\"_0\":\"registry The current registry address\"}},\"getStrategy(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"strategy The address of the strategy for the ID of the pool passed in\"}},\"getTreasury()\":{\"returns\":{\"_0\":\"treasury The current treasury address\"}},\"initialize(address,address,address,uint256,uint256)\":{\"params\":{\"_baseFee\":\"Base fee amount\",\"_owner\":\"Address of the owner\",\"_percentFee\":\"Percentage for the fee\",\"_registry\":\"Address of the registry contract\",\"_treasury\":\"Address of the treasury\"}},\"isCloneableStrategy(address)\":{\"params\":{\"_strategy\":\"The address of the strategy to check\"},\"returns\":{\"_0\":\"'true' if the '_strategy' is cloneable, otherwise 'false'\"}},\"isPoolAdmin(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"'true' if the '_address' is a pool admin, otherwise 'false'\"}},\"isPoolManager(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool to check\"},\"returns\":{\"_0\":\"'true' if the '_address' is a pool manager, otherwise 'false'\"}},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_recipient\":\"The address to send the recovered funds to\",\"_token\":\"The token to recover\"}},\"registerRecipient(uint256,bytes)\":{\"params\":{\"_poolId\":\"The ID of the pool to register the recipient for\"}},\"removeFromCloneableStrategies(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_strategy\":\"The address of the strategy to remove\"}},\"removePoolManager(uint256,address)\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address of the manager to remove\",\"_poolId\":\"The ID of the pool to remove the manager from\"}},\"updateBaseFee(uint256)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_baseFee\":\"The new base fee\"}},\"updatePercentFee(uint256)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_percentFee\":\"The new percentage for the fee\"}},\"updatePoolMetadata(uint256,(uint256,string))\":{\"details\":\"'msg.sender' must be a pool admin.\",\"params\":{\"_metadata\":\"The new metadata to set\",\"_poolId\":\"The ID of the pool to update\"}},\"updateRegistry(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_registry\":\"The new registry address\"}},\"updateTreasury(address)\":{\"details\":\"'msg.sender' must be the Allo contract owner.\",\"params\":{\"_treasury\":\"The new treasury address\"}}},\"title\":\"Allo Interface\",\"version\":1},\"userdoc\":{\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"notice\":\"Emitted when the base fee is paid\"},\"BaseFeeUpdated(uint256)\":{\"notice\":\"Emitted when the base fee is updated\"},\"PercentFeeUpdated(uint256)\":{\"notice\":\"Emitted when the percent fee is updated\"},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"notice\":\"Event emitted when a new pool is created\"},\"PoolFunded(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a pool is funded\"},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"notice\":\"Emitted when a pools metadata is updated\"},\"RegistryUpdated(address)\":{\"notice\":\"Emitted when the registry address is updated\"},\"StrategyApproved(address)\":{\"notice\":\"Emitted when a strategy is approved and added to the cloneable strategies\"},\"StrategyRemoved(address)\":{\"notice\":\"Emitted when a strategy is removed from the cloneable strategies\"},\"TreasuryUpdated(address)\":{\"notice\":\"Emitted when the treasury address is updated\"}},\"kind\":\"user\",\"methods\":{\"addPoolManager(uint256,address)\":{\"notice\":\"Adds a pool manager to the pool.\"},\"addToCloneableStrategies(address)\":{\"notice\":\"Adds a strategy to the cloneable strategies.\"},\"allocate(uint256,bytes)\":{\"notice\":\"Allocates funds to a recipient.\"},\"batchAllocate(uint256[],bytes[])\":{\"notice\":\"Allocates funds to multiple recipients.\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"notice\":\"Registers a batch of recipients.\"},\"distribute(uint256,address[],bytes)\":{\"notice\":\"Distributes funds to recipients and emits {Distributed} event if successful\"},\"fundPool(uint256,uint256)\":{\"notice\":\"Funds a pool.\"},\"getBaseFee()\":{\"notice\":\"Returns the current base fee\"},\"getFeeDenominator()\":{\"notice\":\"Returns the current fee denominator\"},\"getPercentFee()\":{\"notice\":\"Returns the current percent fee\"},\"getPool(uint256)\":{\"notice\":\"Returns the 'Pool' struct for a given 'poolId'\"},\"getRegistry()\":{\"notice\":\"Returns the current registry address\"},\"getStrategy(uint256)\":{\"notice\":\"Returns the address of the strategy for a given 'poolId'\"},\"getTreasury()\":{\"notice\":\"Returns the current treasury address\"},\"initialize(address,address,address,uint256,uint256)\":{\"notice\":\"Initialize the Allo contract\"},\"isCloneableStrategy(address)\":{\"notice\":\"Checks if a strategy is cloneable (is in the cloneableStrategies mapping).\"},\"isPoolAdmin(uint256,address)\":{\"notice\":\"Checks if an address is a pool admin.\"},\"isPoolManager(uint256,address)\":{\"notice\":\"Checks if an address is a pool manager.\"},\"recoverFunds(address,address)\":{\"notice\":\"Recovers funds from a pool.\"},\"registerRecipient(uint256,bytes)\":{\"notice\":\"Registers a recipient and emits {Registered} event if successful and may be handled differently by each strategy.\"},\"removeFromCloneableStrategies(address)\":{\"notice\":\"Removes a strategy from the cloneable strategies.\"},\"removePoolManager(uint256,address)\":{\"notice\":\"Removes a pool manager from the pool.\"},\"updateBaseFee(uint256)\":{\"notice\":\"Updates the base fee.\"},\"updatePercentFee(uint256)\":{\"notice\":\"Updates the percentage for the fee.\"},\"updatePoolMetadata(uint256,(uint256,string))\":{\"notice\":\"Updates a pools metadata.\"},\"updateRegistry(address)\":{\"notice\":\"Update the registry address.\"},\"updateTreasury(address)\":{\"notice\":\"Updates the treasury address.\"}},\"notice\":\"Interface for the Allo contract. It exposes all functions needed to use the Allo protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":\"IAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BaseFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256","indexed":false}],"type":"event","name":"BaseFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"percentFee","type":"uint256","indexed":false}],"type":"event","name":"PercentFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"PoolFunded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"registry","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasuryUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPoolManager"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterRecipient","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundPool"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPercentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStrategy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_percentFee","type":"uint256"},{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"isCloneableStrategy","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFromCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePoolManager"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateBaseFee"},{"inputs":[{"internalType":"uint256","name":"_percentFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updatePercentFee"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePoolMetadata"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRegistry"},{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTreasury"}],"devdoc":{"kind":"dev","methods":{"addPoolManager(uint256,address)":{"details":"'msg.sender' must be a pool admin.","params":{"_manager":"The address of the manager to add","_poolId":"The ID of the pool to add the manager to"}},"addToCloneableStrategies(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_strategy":"The address of the strategy to add"}},"allocate(uint256,bytes)":{"details":"Each strategy will handle the allocation of funds differently.","params":{"_data":"The data to pass to the strategy and may be handled differently by each strategy.","_poolId":"The ID of the pool to allocate funds from"}},"batchAllocate(uint256[],bytes[])":{"details":"Each strategy will handle the allocation of funds differently"},"batchRegisterRecipient(uint256[],bytes[])":{"params":{"_data":"The data to pass to the strategy and may be handled differently by each strategy","_poolIds":"The pool ID's to register the recipients for"}},"distribute(uint256,address[],bytes)":{"details":"Each strategy will handle the distribution of funds differently","params":{"_data":"The data to pass to the strategy and may be handled differently by each strategy","_poolId":"The ID of the pool to distribute from","_recipientIds":"The recipient ids to distribute to"}},"fundPool(uint256,uint256)":{"details":"'msg.value' must be greater than 0 if the token is the native token or '_amount' must be greater than 0 if the token is not the native token.","params":{"_amount":"The amount to fund the pool with","_poolId":"The ID of the pool to fund"}},"getBaseFee()":{"returns":{"_0":"baseFee The current base fee"}},"getFeeDenominator()":{"details":"1e18 represents 100%","returns":{"_0":"feeDenominator The current fee denominator"}},"getPercentFee()":{"returns":{"_0":"percentFee The current percentage for the fee"}},"getPool(uint256)":{"params":{"_poolId":"The ID of the pool to check"},"returns":{"_0":"pool The 'Pool' struct for the ID of the pool passed in"}},"getRegistry()":{"returns":{"_0":"registry The current registry address"}},"getStrategy(uint256)":{"params":{"_poolId":"The ID of the pool to check"},"returns":{"_0":"strategy The address of the strategy for the ID of the pool passed in"}},"getTreasury()":{"returns":{"_0":"treasury The current treasury address"}},"initialize(address,address,address,uint256,uint256)":{"params":{"_baseFee":"Base fee amount","_owner":"Address of the owner","_percentFee":"Percentage for the fee","_registry":"Address of the registry contract","_treasury":"Address of the treasury"}},"isCloneableStrategy(address)":{"params":{"_strategy":"The address of the strategy to check"},"returns":{"_0":"'true' if the '_strategy' is cloneable, otherwise 'false'"}},"isPoolAdmin(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool to check"},"returns":{"_0":"'true' if the '_address' is a pool admin, otherwise 'false'"}},"isPoolManager(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool to check"},"returns":{"_0":"'true' if the '_address' is a pool manager, otherwise 'false'"}},"recoverFunds(address,address)":{"details":"'msg.sender' must be a pool admin.","params":{"_recipient":"The address to send the recovered funds to","_token":"The token to recover"}},"registerRecipient(uint256,bytes)":{"params":{"_poolId":"The ID of the pool to register the recipient for"}},"removeFromCloneableStrategies(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_strategy":"The address of the strategy to remove"}},"removePoolManager(uint256,address)":{"details":"'msg.sender' must be a pool admin.","params":{"_manager":"The address of the manager to remove","_poolId":"The ID of the pool to remove the manager from"}},"updateBaseFee(uint256)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_baseFee":"The new base fee"}},"updatePercentFee(uint256)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_percentFee":"The new percentage for the fee"}},"updatePoolMetadata(uint256,(uint256,string))":{"details":"'msg.sender' must be a pool admin.","params":{"_metadata":"The new metadata to set","_poolId":"The ID of the pool to update"}},"updateRegistry(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_registry":"The new registry address"}},"updateTreasury(address)":{"details":"'msg.sender' must be the Allo contract owner.","params":{"_treasury":"The new treasury address"}}},"version":1},"userdoc":{"kind":"user","methods":{"addPoolManager(uint256,address)":{"notice":"Adds a pool manager to the pool."},"addToCloneableStrategies(address)":{"notice":"Adds a strategy to the cloneable strategies."},"allocate(uint256,bytes)":{"notice":"Allocates funds to a recipient."},"batchAllocate(uint256[],bytes[])":{"notice":"Allocates funds to multiple recipients."},"batchRegisterRecipient(uint256[],bytes[])":{"notice":"Registers a batch of recipients."},"distribute(uint256,address[],bytes)":{"notice":"Distributes funds to recipients and emits {Distributed} event if successful"},"fundPool(uint256,uint256)":{"notice":"Funds a pool."},"getBaseFee()":{"notice":"Returns the current base fee"},"getFeeDenominator()":{"notice":"Returns the current fee denominator"},"getPercentFee()":{"notice":"Returns the current percent fee"},"getPool(uint256)":{"notice":"Returns the 'Pool' struct for a given 'poolId'"},"getRegistry()":{"notice":"Returns the current registry address"},"getStrategy(uint256)":{"notice":"Returns the address of the strategy for a given 'poolId'"},"getTreasury()":{"notice":"Returns the current treasury address"},"initialize(address,address,address,uint256,uint256)":{"notice":"Initialize the Allo contract"},"isCloneableStrategy(address)":{"notice":"Checks if a strategy is cloneable (is in the cloneableStrategies mapping)."},"isPoolAdmin(uint256,address)":{"notice":"Checks if an address is a pool admin."},"isPoolManager(uint256,address)":{"notice":"Checks if an address is a pool manager."},"recoverFunds(address,address)":{"notice":"Recovers funds from a pool."},"registerRecipient(uint256,bytes)":{"notice":"Registers a recipient and emits {Registered} event if successful and may be handled differently by each strategy."},"removeFromCloneableStrategies(address)":{"notice":"Removes a strategy from the cloneable strategies."},"removePoolManager(uint256,address)":{"notice":"Removes a pool manager from the pool."},"updateBaseFee(uint256)":{"notice":"Updates the base fee."},"updatePercentFee(uint256)":{"notice":"Updates the percentage for the fee."},"updatePoolMetadata(uint256,(uint256,string))":{"notice":"Updates a pools metadata."},"updateRegistry(address)":{"notice":"Update the registry address."},"updateTreasury(address)":{"notice":"Updates the treasury address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":"IAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","id":2611,"exportedSymbols":{"IAllo":[2610],"IRegistry":[2802],"IStrategy":[2969],"Metadata":[3098]},"nodeType":"SourceUnit","src":"42:15030:3","nodes":[{"id":2297,"nodeType":"PragmaDirective","src":"42:24:3","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":2299,"nodeType":"ImportDirective","src":"82:42:3","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"./IRegistry.sol","nameLocation":"-1:-1:-1","scope":2611,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":2298,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"90:9:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2301,"nodeType":"ImportDirective","src":"125:42:3","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IStrategy.sol","file":"./IStrategy.sol","nameLocation":"-1:-1:-1","scope":2611,"sourceUnit":2970,"symbolAliases":[{"foreign":{"id":2300,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"133:9:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2303,"nodeType":"ImportDirective","src":"190:51:3","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":2611,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":2302,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"198:8:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2610,"nodeType":"ContractDefinition","src":"4531:10540:3","nodes":[{"id":2319,"nodeType":"StructDefinition","src":"4718:180:3","nodes":[],"canonicalName":"IAllo.Pool","members":[{"constant":false,"id":2306,"mutability":"mutable","name":"profileId","nameLocation":"4748:9:3","nodeType":"VariableDeclaration","scope":2319,"src":"4740:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2305,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4740:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2309,"mutability":"mutable","name":"strategy","nameLocation":"4777:8:3","nodeType":"VariableDeclaration","scope":2319,"src":"4767:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":2308,"nodeType":"UserDefinedTypeName","pathNode":{"id":2307,"name":"IStrategy","nameLocations":["4767:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"4767:9:3"},"referencedDeclaration":2969,"src":"4767:9:3","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"},{"constant":false,"id":2311,"mutability":"mutable","name":"token","nameLocation":"4803:5:3","nodeType":"VariableDeclaration","scope":2319,"src":"4795:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2310,"name":"address","nodeType":"ElementaryTypeName","src":"4795:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2314,"mutability":"mutable","name":"metadata","nameLocation":"4827:8:3","nodeType":"VariableDeclaration","scope":2319,"src":"4818:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":2313,"nodeType":"UserDefinedTypeName","pathNode":{"id":2312,"name":"Metadata","nameLocations":["4818:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"4818:8:3"},"referencedDeclaration":3098,"src":"4818:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":2316,"mutability":"mutable","name":"managerRole","nameLocation":"4853:11:3","nodeType":"VariableDeclaration","scope":2319,"src":"4845:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2315,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4845:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2318,"mutability":"mutable","name":"adminRole","nameLocation":"4882:9:3","nodeType":"VariableDeclaration","scope":2319,"src":"4874:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2317,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4874:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"name":"Pool","nameLocation":"4725:4:3","scope":2610,"visibility":"public"},{"id":2336,"nodeType":"EventDefinition","src":"5405:193:3","nodes":[],"anonymous":false,"documentation":{"id":2320,"nodeType":"StructuredDocumentation","src":"4998:402:3","text":"@notice Event emitted when a new pool is created\n @param poolId ID of the pool created\n @param profileId ID of the profile the pool is associated with\n @param strategy Address of the strategy contract\n @param token Address of the token pool was funded with when created\n @param amount Amount pool was funded with when created\n @param metadata Pool metadata"},"eventSelector":"69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba1","name":"PoolCreated","nameLocation":"5411:11:3","parameters":{"id":2335,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2322,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"5448:6:3","nodeType":"VariableDeclaration","scope":2336,"src":"5432:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2321,"name":"uint256","nodeType":"ElementaryTypeName","src":"5432:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2324,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"5480:9:3","nodeType":"VariableDeclaration","scope":2336,"src":"5464:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2323,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5464:7:3","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2327,"indexed":false,"mutability":"mutable","name":"strategy","nameLocation":"5509:8:3","nodeType":"VariableDeclaration","scope":2336,"src":"5499:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":2326,"nodeType":"UserDefinedTypeName","pathNode":{"id":2325,"name":"IStrategy","nameLocations":["5499:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"5499:9:3"},"referencedDeclaration":2969,"src":"5499:9:3","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"},{"constant":false,"id":2329,"indexed":false,"mutability":"mutable","name":"token","nameLocation":"5535:5:3","nodeType":"VariableDeclaration","scope":2336,"src":"5527:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2328,"name":"address","nodeType":"ElementaryTypeName","src":"5527:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2331,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5558:6:3","nodeType":"VariableDeclaration","scope":2336,"src":"5550:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2330,"name":"uint256","nodeType":"ElementaryTypeName","src":"5550:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2334,"indexed":false,"mutability":"mutable","name":"metadata","nameLocation":"5583:8:3","nodeType":"VariableDeclaration","scope":2336,"src":"5574:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2333,"nodeType":"UserDefinedTypeName","pathNode":{"id":2332,"name":"Metadata","nameLocations":["5574:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"5574:8:3"},"referencedDeclaration":3098,"src":"5574:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"5422:175:3"}},{"id":2344,"nodeType":"EventDefinition","src":"5761:69:3","nodes":[],"anonymous":false,"documentation":{"id":2337,"nodeType":"StructuredDocumentation","src":"5604:152:3","text":"@notice Emitted when a pools metadata is updated\n @param poolId ID of the pool updated\n @param metadata Pool metadata that was updated"},"eventSelector":"14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf0","name":"PoolMetadataUpdated","nameLocation":"5767:19:3","parameters":{"id":2343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2339,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"5803:6:3","nodeType":"VariableDeclaration","scope":2344,"src":"5787:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2338,"name":"uint256","nodeType":"ElementaryTypeName","src":"5787:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2342,"indexed":false,"mutability":"mutable","name":"metadata","nameLocation":"5820:8:3","nodeType":"VariableDeclaration","scope":2344,"src":"5811:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2341,"nodeType":"UserDefinedTypeName","pathNode":{"id":2340,"name":"Metadata","nameLocations":["5811:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"5811:8:3"},"referencedDeclaration":3098,"src":"5811:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"5786:43:3"}},{"id":2353,"nodeType":"EventDefinition","src":"6032:70:3","nodes":[],"anonymous":false,"documentation":{"id":2345,"nodeType":"StructuredDocumentation","src":"5836:191:3","text":"@notice Emitted when a pool is funded\n @param poolId ID of the pool funded\n @param amount Amount funded to the pool\n @param fee Amount of the fee paid to the treasury"},"eventSelector":"bf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb4851","name":"PoolFunded","nameLocation":"6038:10:3","parameters":{"id":2352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2347,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"6065:6:3","nodeType":"VariableDeclaration","scope":2353,"src":"6049:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2346,"name":"uint256","nodeType":"ElementaryTypeName","src":"6049:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2349,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"6081:6:3","nodeType":"VariableDeclaration","scope":2353,"src":"6073:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2348,"name":"uint256","nodeType":"ElementaryTypeName","src":"6073:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2351,"indexed":false,"mutability":"mutable","name":"fee","nameLocation":"6097:3:3","nodeType":"VariableDeclaration","scope":2353,"src":"6089:11:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2350,"name":"uint256","nodeType":"ElementaryTypeName","src":"6089:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6048:53:3"}},{"id":2360,"nodeType":"EventDefinition","src":"6271:58:3","nodes":[],"anonymous":false,"documentation":{"id":2354,"nodeType":"StructuredDocumentation","src":"6108:158:3","text":"@notice Emitted when the base fee is paid\n @param poolId ID of the pool the base fee was paid for\n @param amount Amount of the base fee paid"},"eventSelector":"02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac72","name":"BaseFeePaid","nameLocation":"6277:11:3","parameters":{"id":2359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2356,"indexed":true,"mutability":"mutable","name":"poolId","nameLocation":"6305:6:3","nodeType":"VariableDeclaration","scope":2360,"src":"6289:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2355,"name":"uint256","nodeType":"ElementaryTypeName","src":"6289:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2358,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"6321:6:3","nodeType":"VariableDeclaration","scope":2360,"src":"6313:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2357,"name":"uint256","nodeType":"ElementaryTypeName","src":"6313:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6288:40:3"}},{"id":2365,"nodeType":"EventDefinition","src":"6448:40:3","nodes":[],"anonymous":false,"documentation":{"id":2361,"nodeType":"StructuredDocumentation","src":"6335:108:3","text":"@notice Emitted when the treasury address is updated\n @param treasury Address of the new treasury"},"eventSelector":"7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d1","name":"TreasuryUpdated","nameLocation":"6454:15:3","parameters":{"id":2364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2363,"indexed":false,"mutability":"mutable","name":"treasury","nameLocation":"6478:8:3","nodeType":"VariableDeclaration","scope":2365,"src":"6470:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2362,"name":"address","nodeType":"ElementaryTypeName","src":"6470:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6469:18:3"}},{"id":2370,"nodeType":"EventDefinition","src":"6603:44:3","nodes":[],"anonymous":false,"documentation":{"id":2366,"nodeType":"StructuredDocumentation","src":"6494:104:3","text":"@notice Emitted when the percent fee is updated\n @param percentFee New percentage for the fee"},"eventSelector":"9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b065","name":"PercentFeeUpdated","nameLocation":"6609:17:3","parameters":{"id":2369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2368,"indexed":false,"mutability":"mutable","name":"percentFee","nameLocation":"6635:10:3","nodeType":"VariableDeclaration","scope":2370,"src":"6627:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2367,"name":"uint256","nodeType":"ElementaryTypeName","src":"6627:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6626:20:3"}},{"id":2375,"nodeType":"EventDefinition","src":"6749:38:3","nodes":[],"anonymous":false,"documentation":{"id":2371,"nodeType":"StructuredDocumentation","src":"6653:91:3","text":"@notice Emitted when the base fee is updated\n @param baseFee New base fee amount"},"eventSelector":"803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c3","name":"BaseFeeUpdated","nameLocation":"6755:14:3","parameters":{"id":2374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2373,"indexed":false,"mutability":"mutable","name":"baseFee","nameLocation":"6778:7:3","nodeType":"VariableDeclaration","scope":2375,"src":"6770:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2372,"name":"uint256","nodeType":"ElementaryTypeName","src":"6770:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6769:17:3"}},{"id":2380,"nodeType":"EventDefinition","src":"6906:40:3","nodes":[],"anonymous":false,"documentation":{"id":2376,"nodeType":"StructuredDocumentation","src":"6793:108:3","text":"@notice Emitted when the registry address is updated\n @param registry Address of the new registry"},"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"6912:15:3","parameters":{"id":2379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2378,"indexed":false,"mutability":"mutable","name":"registry","nameLocation":"6936:8:3","nodeType":"VariableDeclaration","scope":2380,"src":"6928:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2377,"name":"address","nodeType":"ElementaryTypeName","src":"6928:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6927:18:3"}},{"id":2385,"nodeType":"EventDefinition","src":"7099:41:3","nodes":[],"anonymous":false,"documentation":{"id":2381,"nodeType":"StructuredDocumentation","src":"6952:142:3","text":"@notice Emitted when a strategy is approved and added to the cloneable strategies\n @param strategy Address of the strategy approved"},"eventSelector":"960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d1","name":"StrategyApproved","nameLocation":"7105:16:3","parameters":{"id":2384,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2383,"indexed":false,"mutability":"mutable","name":"strategy","nameLocation":"7130:8:3","nodeType":"VariableDeclaration","scope":2385,"src":"7122:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2382,"name":"address","nodeType":"ElementaryTypeName","src":"7122:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7121:18:3"}},{"id":2390,"nodeType":"EventDefinition","src":"7283:40:3","nodes":[],"anonymous":false,"documentation":{"id":2386,"nodeType":"StructuredDocumentation","src":"7146:132:3","text":"@notice Emitted when a strategy is removed from the cloneable strategies\n @param strategy Address of the strategy removed"},"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"7289:15:3","parameters":{"id":2389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2388,"indexed":false,"mutability":"mutable","name":"strategy","nameLocation":"7313:8:3","nodeType":"VariableDeclaration","scope":2390,"src":"7305:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2387,"name":"address","nodeType":"ElementaryTypeName","src":"7305:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7304:18:3"}},{"id":2404,"nodeType":"FunctionDefinition","src":"7750:176:3","nodes":[],"documentation":{"id":2391,"nodeType":"StructuredDocumentation","src":"7465:280:3","text":"@notice Initialize the Allo contract\n @param _owner Address of the owner\n @param _registry Address of the registry contract\n @param _treasury Address of the treasury\n @param _percentFee Percentage for the fee\n @param _baseFee Base fee amount"},"functionSelector":"a6b63eb8","implemented":false,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7759:10:3","parameters":{"id":2402,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2393,"mutability":"mutable","name":"_owner","nameLocation":"7787:6:3","nodeType":"VariableDeclaration","scope":2404,"src":"7779:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2392,"name":"address","nodeType":"ElementaryTypeName","src":"7779:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2395,"mutability":"mutable","name":"_registry","nameLocation":"7811:9:3","nodeType":"VariableDeclaration","scope":2404,"src":"7803:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2394,"name":"address","nodeType":"ElementaryTypeName","src":"7803:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2397,"mutability":"mutable","name":"_treasury","nameLocation":"7846:9:3","nodeType":"VariableDeclaration","scope":2404,"src":"7830:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2396,"name":"address","nodeType":"ElementaryTypeName","src":"7830:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":2399,"mutability":"mutable","name":"_percentFee","nameLocation":"7873:11:3","nodeType":"VariableDeclaration","scope":2404,"src":"7865:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2398,"name":"uint256","nodeType":"ElementaryTypeName","src":"7865:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2401,"mutability":"mutable","name":"_baseFee","nameLocation":"7902:8:3","nodeType":"VariableDeclaration","scope":2404,"src":"7894:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2400,"name":"uint256","nodeType":"ElementaryTypeName","src":"7894:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7769:147:3"},"returnParameters":{"id":2403,"nodeType":"ParameterList","parameters":[],"src":"7925:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2413,"nodeType":"FunctionDefinition","src":"8123:81:3","nodes":[],"documentation":{"id":2405,"nodeType":"StructuredDocumentation","src":"7932:186:3","text":"@notice Updates a pools metadata.\n @dev 'msg.sender' must be a pool admin.\n @param _poolId The ID of the pool to update\n @param _metadata The new metadata to set"},"functionSelector":"5f9ca138","implemented":false,"kind":"function","modifiers":[],"name":"updatePoolMetadata","nameLocation":"8132:18:3","parameters":{"id":2411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2407,"mutability":"mutable","name":"_poolId","nameLocation":"8159:7:3","nodeType":"VariableDeclaration","scope":2413,"src":"8151:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2406,"name":"uint256","nodeType":"ElementaryTypeName","src":"8151:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2410,"mutability":"mutable","name":"_metadata","nameLocation":"8184:9:3","nodeType":"VariableDeclaration","scope":2413,"src":"8168:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2409,"nodeType":"UserDefinedTypeName","pathNode":{"id":2408,"name":"Metadata","nameLocations":["8168:8:3"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"8168:8:3"},"referencedDeclaration":3098,"src":"8168:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"8150:44:3"},"returnParameters":{"id":2412,"nodeType":"ParameterList","parameters":[],"src":"8203:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2419,"nodeType":"FunctionDefinition","src":"8364:52:3","nodes":[],"documentation":{"id":2414,"nodeType":"StructuredDocumentation","src":"8210:149:3","text":"@notice Update the registry address.\n @dev 'msg.sender' must be the Allo contract owner.\n @param _registry The new registry address"},"functionSelector":"1a5da6c8","implemented":false,"kind":"function","modifiers":[],"name":"updateRegistry","nameLocation":"8373:14:3","parameters":{"id":2417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2416,"mutability":"mutable","name":"_registry","nameLocation":"8396:9:3","nodeType":"VariableDeclaration","scope":2419,"src":"8388:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2415,"name":"address","nodeType":"ElementaryTypeName","src":"8388:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8387:19:3"},"returnParameters":{"id":2418,"nodeType":"ParameterList","parameters":[],"src":"8415:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2425,"nodeType":"FunctionDefinition","src":"8577:60:3","nodes":[],"documentation":{"id":2420,"nodeType":"StructuredDocumentation","src":"8422:150:3","text":"@notice Updates the treasury address.\n @dev 'msg.sender' must be the Allo contract owner.\n @param _treasury The new treasury address"},"functionSelector":"7f51bb1f","implemented":false,"kind":"function","modifiers":[],"name":"updateTreasury","nameLocation":"8586:14:3","parameters":{"id":2423,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2422,"mutability":"mutable","name":"_treasury","nameLocation":"8617:9:3","nodeType":"VariableDeclaration","scope":2425,"src":"8601:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2421,"name":"address","nodeType":"ElementaryTypeName","src":"8601:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"8600:27:3"},"returnParameters":{"id":2424,"nodeType":"ParameterList","parameters":[],"src":"8636:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2431,"nodeType":"FunctionDefinition","src":"8812:56:3","nodes":[],"documentation":{"id":2426,"nodeType":"StructuredDocumentation","src":"8643:164:3","text":"@notice Updates the percentage for the fee.\n @dev 'msg.sender' must be the Allo contract owner.\n @param _percentFee The new percentage for the fee"},"functionSelector":"f54fc4a0","implemented":false,"kind":"function","modifiers":[],"name":"updatePercentFee","nameLocation":"8821:16:3","parameters":{"id":2429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2428,"mutability":"mutable","name":"_percentFee","nameLocation":"8846:11:3","nodeType":"VariableDeclaration","scope":2431,"src":"8838:19:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2427,"name":"uint256","nodeType":"ElementaryTypeName","src":"8838:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8837:21:3"},"returnParameters":{"id":2430,"nodeType":"ParameterList","parameters":[],"src":"8867:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2437,"nodeType":"FunctionDefinition","src":"9012:50:3","nodes":[],"documentation":{"id":2432,"nodeType":"StructuredDocumentation","src":"8874:133:3","text":"@notice Updates the base fee.\n @dev 'msg.sender' must be the Allo contract owner.\n @param _baseFee The new base fee"},"functionSelector":"8e690186","implemented":false,"kind":"function","modifiers":[],"name":"updateBaseFee","nameLocation":"9021:13:3","parameters":{"id":2435,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2434,"mutability":"mutable","name":"_baseFee","nameLocation":"9043:8:3","nodeType":"VariableDeclaration","scope":2437,"src":"9035:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2433,"name":"uint256","nodeType":"ElementaryTypeName","src":"9035:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9034:18:3"},"returnParameters":{"id":2436,"nodeType":"ParameterList","parameters":[],"src":"9061:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2443,"nodeType":"FunctionDefinition","src":"9248:62:3","nodes":[],"documentation":{"id":2438,"nodeType":"StructuredDocumentation","src":"9068:175:3","text":"@notice Adds a strategy to the cloneable strategies.\n @dev 'msg.sender' must be the Allo contract owner.\n @param _strategy The address of the strategy to add"},"functionSelector":"41bba0b4","implemented":false,"kind":"function","modifiers":[],"name":"addToCloneableStrategies","nameLocation":"9257:24:3","parameters":{"id":2441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2440,"mutability":"mutable","name":"_strategy","nameLocation":"9290:9:3","nodeType":"VariableDeclaration","scope":2443,"src":"9282:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2439,"name":"address","nodeType":"ElementaryTypeName","src":"9282:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9281:19:3"},"returnParameters":{"id":2442,"nodeType":"ParameterList","parameters":[],"src":"9309:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2449,"nodeType":"FunctionDefinition","src":"9504:67:3","nodes":[],"documentation":{"id":2444,"nodeType":"StructuredDocumentation","src":"9316:183:3","text":"@notice Removes a strategy from the cloneable strategies.\n @dev 'msg.sender' must be the Allo contract owner.\n @param _strategy The address of the strategy to remove"},"functionSelector":"031e2fa1","implemented":false,"kind":"function","modifiers":[],"name":"removeFromCloneableStrategies","nameLocation":"9513:29:3","parameters":{"id":2447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2446,"mutability":"mutable","name":"_strategy","nameLocation":"9551:9:3","nodeType":"VariableDeclaration","scope":2449,"src":"9543:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2445,"name":"address","nodeType":"ElementaryTypeName","src":"9543:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9542:19:3"},"returnParameters":{"id":2448,"nodeType":"ParameterList","parameters":[],"src":"9570:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2457,"nodeType":"FunctionDefinition","src":"9796:68:3","nodes":[],"documentation":{"id":2450,"nodeType":"StructuredDocumentation","src":"9577:214:3","text":"@notice Adds a pool manager to the pool.\n @dev 'msg.sender' must be a pool admin.\n @param _poolId The ID of the pool to add the manager to\n @param _manager The address of the manager to add"},"functionSelector":"2cf682b0","implemented":false,"kind":"function","modifiers":[],"name":"addPoolManager","nameLocation":"9805:14:3","parameters":{"id":2455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2452,"mutability":"mutable","name":"_poolId","nameLocation":"9828:7:3","nodeType":"VariableDeclaration","scope":2457,"src":"9820:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2451,"name":"uint256","nodeType":"ElementaryTypeName","src":"9820:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2454,"mutability":"mutable","name":"_manager","nameLocation":"9845:8:3","nodeType":"VariableDeclaration","scope":2457,"src":"9837:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2453,"name":"address","nodeType":"ElementaryTypeName","src":"9837:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9819:35:3"},"returnParameters":{"id":2456,"nodeType":"ParameterList","parameters":[],"src":"9863:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2465,"nodeType":"FunctionDefinition","src":"10102:71:3","nodes":[],"documentation":{"id":2458,"nodeType":"StructuredDocumentation","src":"9870:227:3","text":"@notice Removes a pool manager from the pool.\n @dev 'msg.sender' must be a pool admin.\n @param _poolId The ID of the pool to remove the manager from\n @param _manager The address of the manager to remove"},"functionSelector":"7f5a70bd","implemented":false,"kind":"function","modifiers":[],"name":"removePoolManager","nameLocation":"10111:17:3","parameters":{"id":2463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2460,"mutability":"mutable","name":"_poolId","nameLocation":"10137:7:3","nodeType":"VariableDeclaration","scope":2465,"src":"10129:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2459,"name":"uint256","nodeType":"ElementaryTypeName","src":"10129:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2462,"mutability":"mutable","name":"_manager","nameLocation":"10154:8:3","nodeType":"VariableDeclaration","scope":2465,"src":"10146:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2461,"name":"address","nodeType":"ElementaryTypeName","src":"10146:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10128:35:3"},"returnParameters":{"id":2464,"nodeType":"ParameterList","parameters":[],"src":"10172:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2473,"nodeType":"FunctionDefinition","src":"10383:67:3","nodes":[],"documentation":{"id":2466,"nodeType":"StructuredDocumentation","src":"10179:199:3","text":"@notice Recovers funds from a pool.\n @dev 'msg.sender' must be a pool admin.\n @param _token The token to recover\n @param _recipient The address to send the recovered funds to"},"functionSelector":"24ae6a27","implemented":false,"kind":"function","modifiers":[],"name":"recoverFunds","nameLocation":"10392:12:3","parameters":{"id":2471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2468,"mutability":"mutable","name":"_token","nameLocation":"10413:6:3","nodeType":"VariableDeclaration","scope":2473,"src":"10405:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2467,"name":"address","nodeType":"ElementaryTypeName","src":"10405:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2470,"mutability":"mutable","name":"_recipient","nameLocation":"10429:10:3","nodeType":"VariableDeclaration","scope":2473,"src":"10421:18:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2469,"name":"address","nodeType":"ElementaryTypeName","src":"10421:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10404:36:3"},"returnParameters":{"id":2472,"nodeType":"ParameterList","parameters":[],"src":"10449:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2483,"nodeType":"FunctionDefinition","src":"10658:99:3","nodes":[],"documentation":{"id":2474,"nodeType":"StructuredDocumentation","src":"10456:197:3","text":"@notice Registers a recipient and emits {Registered} event if successful and may be handled differently by each strategy.\n @param _poolId The ID of the pool to register the recipient for"},"functionSelector":"075c0e9c","implemented":false,"kind":"function","modifiers":[],"name":"registerRecipient","nameLocation":"10667:17:3","parameters":{"id":2479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2476,"mutability":"mutable","name":"_poolId","nameLocation":"10693:7:3","nodeType":"VariableDeclaration","scope":2483,"src":"10685:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2475,"name":"uint256","nodeType":"ElementaryTypeName","src":"10685:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2478,"mutability":"mutable","name":"_data","nameLocation":"10715:5:3","nodeType":"VariableDeclaration","scope":2483,"src":"10702:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2477,"name":"bytes","nodeType":"ElementaryTypeName","src":"10702:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"10684:37:3"},"returnParameters":{"id":2482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2481,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2483,"src":"10748:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2480,"name":"address","nodeType":"ElementaryTypeName","src":"10748:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10747:9:3"},"scope":2610,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":2496,"nodeType":"FunctionDefinition","src":"10983:133:3","nodes":[],"documentation":{"id":2484,"nodeType":"StructuredDocumentation","src":"10763:215:3","text":"@notice Registers a batch of recipients.\n @param _poolIds The pool ID's to register the recipients for\n @param _data The data to pass to the strategy and may be handled differently by each strategy"},"functionSelector":"1a20bd88","implemented":false,"kind":"function","modifiers":[],"name":"batchRegisterRecipient","nameLocation":"10992:22:3","parameters":{"id":2491,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2487,"mutability":"mutable","name":"_poolIds","nameLocation":"11032:8:3","nodeType":"VariableDeclaration","scope":2496,"src":"11015:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2485,"name":"uint256","nodeType":"ElementaryTypeName","src":"11015:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2486,"nodeType":"ArrayTypeName","src":"11015:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2490,"mutability":"mutable","name":"_data","nameLocation":"11057:5:3","nodeType":"VariableDeclaration","scope":2496,"src":"11042:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2488,"name":"bytes","nodeType":"ElementaryTypeName","src":"11042:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2489,"nodeType":"ArrayTypeName","src":"11042:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"11014:49:3"},"returnParameters":{"id":2495,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2494,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2496,"src":"11098:16:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2492,"name":"address","nodeType":"ElementaryTypeName","src":"11098:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2493,"nodeType":"ArrayTypeName","src":"11098:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11097:18:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2504,"nodeType":"FunctionDefinition","src":"11427:69:3","nodes":[],"documentation":{"id":2497,"nodeType":"StructuredDocumentation","src":"11122:300:3","text":"@notice Funds a pool.\n @dev 'msg.value' must be greater than 0 if the token is the native token\n or '_amount' must be greater than 0 if the token is not the native token.\n @param _poolId The ID of the pool to fund\n @param _amount The amount to fund the pool with"},"functionSelector":"5acd6fac","implemented":false,"kind":"function","modifiers":[],"name":"fundPool","nameLocation":"11436:8:3","parameters":{"id":2502,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2499,"mutability":"mutable","name":"_poolId","nameLocation":"11453:7:3","nodeType":"VariableDeclaration","scope":2504,"src":"11445:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2498,"name":"uint256","nodeType":"ElementaryTypeName","src":"11445:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2501,"mutability":"mutable","name":"_amount","nameLocation":"11470:7:3","nodeType":"VariableDeclaration","scope":2504,"src":"11462:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2500,"name":"uint256","nodeType":"ElementaryTypeName","src":"11462:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11444:34:3"},"returnParameters":{"id":2503,"nodeType":"ParameterList","parameters":[],"src":"11495:0:3"},"scope":2610,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":2512,"nodeType":"FunctionDefinition","src":"11794:72:3","nodes":[],"documentation":{"id":2505,"nodeType":"StructuredDocumentation","src":"11502:287:3","text":"@notice Allocates funds to a recipient.\n @dev Each strategy will handle the allocation of funds differently.\n @param _poolId The ID of the pool to allocate funds from\n @param _data The data to pass to the strategy and may be handled differently by each strategy."},"functionSelector":"2ec38188","implemented":false,"kind":"function","modifiers":[],"name":"allocate","nameLocation":"11803:8:3","parameters":{"id":2510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2507,"mutability":"mutable","name":"_poolId","nameLocation":"11820:7:3","nodeType":"VariableDeclaration","scope":2512,"src":"11812:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2506,"name":"uint256","nodeType":"ElementaryTypeName","src":"11812:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2509,"mutability":"mutable","name":"_data","nameLocation":"11842:5:3","nodeType":"VariableDeclaration","scope":2512,"src":"11829:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2508,"name":"bytes","nodeType":"ElementaryTypeName","src":"11829:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"11811:37:3"},"returnParameters":{"id":2511,"nodeType":"ParameterList","parameters":[],"src":"11865:0:3"},"scope":2610,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":2522,"nodeType":"FunctionDefinition","src":"12003:84:3","nodes":[],"documentation":{"id":2513,"nodeType":"StructuredDocumentation","src":"11872:126:3","text":"@notice Allocates funds to multiple recipients.\n @dev Each strategy will handle the allocation of funds differently"},"functionSelector":"c6dff1cf","implemented":false,"kind":"function","modifiers":[],"name":"batchAllocate","nameLocation":"12012:13:3","parameters":{"id":2520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2516,"mutability":"mutable","name":"_poolIds","nameLocation":"12045:8:3","nodeType":"VariableDeclaration","scope":2522,"src":"12026:27:3","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":2514,"name":"uint256","nodeType":"ElementaryTypeName","src":"12026:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2515,"nodeType":"ArrayTypeName","src":"12026:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":2519,"mutability":"mutable","name":"_datas","nameLocation":"12070:6:3","nodeType":"VariableDeclaration","scope":2522,"src":"12055:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":2517,"name":"bytes","nodeType":"ElementaryTypeName","src":"12055:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":2518,"nodeType":"ArrayTypeName","src":"12055:7:3","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"12025:52:3"},"returnParameters":{"id":2521,"nodeType":"ParameterList","parameters":[],"src":"12086:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2533,"nodeType":"FunctionDefinition","src":"12489:98:3","nodes":[],"documentation":{"id":2523,"nodeType":"StructuredDocumentation","src":"12093:391:3","text":"@notice Distributes funds to recipients and emits {Distributed} event if successful\n @dev Each strategy will handle the distribution of funds differently\n @param _poolId The ID of the pool to distribute from\n @param _recipientIds The recipient ids to distribute to\n @param _data The data to pass to the strategy and may be handled differently by each strategy"},"functionSelector":"3a5fbd92","implemented":false,"kind":"function","modifiers":[],"name":"distribute","nameLocation":"12498:10:3","parameters":{"id":2531,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2525,"mutability":"mutable","name":"_poolId","nameLocation":"12517:7:3","nodeType":"VariableDeclaration","scope":2533,"src":"12509:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2524,"name":"uint256","nodeType":"ElementaryTypeName","src":"12509:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2528,"mutability":"mutable","name":"_recipientIds","nameLocation":"12543:13:3","nodeType":"VariableDeclaration","scope":2533,"src":"12526:30:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2526,"name":"address","nodeType":"ElementaryTypeName","src":"12526:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2527,"nodeType":"ArrayTypeName","src":"12526:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":2530,"mutability":"mutable","name":"_data","nameLocation":"12571:5:3","nodeType":"VariableDeclaration","scope":2533,"src":"12558:18:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2529,"name":"bytes","nodeType":"ElementaryTypeName","src":"12558:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"12508:69:3"},"returnParameters":{"id":2532,"nodeType":"ParameterList","parameters":[],"src":"12586:0:3"},"scope":2610,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2543,"nodeType":"FunctionDefinition","src":"12922:85:3","nodes":[],"documentation":{"id":2534,"nodeType":"StructuredDocumentation","src":"12696:221:3","text":"@notice Checks if an address is a pool admin.\n @param _poolId The ID of the pool to check\n @param _address The address to check\n @return 'true' if the '_address' is a pool admin, otherwise 'false'"},"functionSelector":"ab3febc6","implemented":false,"kind":"function","modifiers":[],"name":"isPoolAdmin","nameLocation":"12931:11:3","parameters":{"id":2539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2536,"mutability":"mutable","name":"_poolId","nameLocation":"12951:7:3","nodeType":"VariableDeclaration","scope":2543,"src":"12943:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2535,"name":"uint256","nodeType":"ElementaryTypeName","src":"12943:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2538,"mutability":"mutable","name":"_address","nameLocation":"12968:8:3","nodeType":"VariableDeclaration","scope":2543,"src":"12960:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2537,"name":"address","nodeType":"ElementaryTypeName","src":"12960:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12942:35:3"},"returnParameters":{"id":2542,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2541,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2543,"src":"13001:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2540,"name":"bool","nodeType":"ElementaryTypeName","src":"13001:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13000:6:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2553,"nodeType":"FunctionDefinition","src":"13243:87:3","nodes":[],"documentation":{"id":2544,"nodeType":"StructuredDocumentation","src":"13013:225:3","text":"@notice Checks if an address is a pool manager.\n @param _poolId The ID of the pool to check\n @param _address The address to check\n @return 'true' if the '_address' is a pool manager, otherwise 'false'"},"functionSelector":"29e40d4b","implemented":false,"kind":"function","modifiers":[],"name":"isPoolManager","nameLocation":"13252:13:3","parameters":{"id":2549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2546,"mutability":"mutable","name":"_poolId","nameLocation":"13274:7:3","nodeType":"VariableDeclaration","scope":2553,"src":"13266:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2545,"name":"uint256","nodeType":"ElementaryTypeName","src":"13266:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2548,"mutability":"mutable","name":"_address","nameLocation":"13291:8:3","nodeType":"VariableDeclaration","scope":2553,"src":"13283:16:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2547,"name":"address","nodeType":"ElementaryTypeName","src":"13283:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13265:35:3"},"returnParameters":{"id":2552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2551,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2553,"src":"13324:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2550,"name":"bool","nodeType":"ElementaryTypeName","src":"13324:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13323:6:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2561,"nodeType":"FunctionDefinition","src":"13563:77:3","nodes":[],"documentation":{"id":2554,"nodeType":"StructuredDocumentation","src":"13336:222:3","text":"@notice Checks if a strategy is cloneable (is in the cloneableStrategies mapping).\n @param _strategy The address of the strategy to check\n @return 'true' if the '_strategy' is cloneable, otherwise 'false'"},"functionSelector":"ab2ec589","implemented":false,"kind":"function","modifiers":[],"name":"isCloneableStrategy","nameLocation":"13572:19:3","parameters":{"id":2557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2556,"mutability":"mutable","name":"_strategy","nameLocation":"13600:9:3","nodeType":"VariableDeclaration","scope":2561,"src":"13592:17:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2555,"name":"address","nodeType":"ElementaryTypeName","src":"13592:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13591:19:3"},"returnParameters":{"id":2560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2559,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2561,"src":"13634:4:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2558,"name":"bool","nodeType":"ElementaryTypeName","src":"13634:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13633:6:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2569,"nodeType":"FunctionDefinition","src":"13856:70:3","nodes":[],"documentation":{"id":2562,"nodeType":"StructuredDocumentation","src":"13646:205:3","text":"@notice Returns the address of the strategy for a given 'poolId'\n @param _poolId The ID of the pool to check\n @return strategy The address of the strategy for the ID of the pool passed in"},"functionSelector":"cfc0cc34","implemented":false,"kind":"function","modifiers":[],"name":"getStrategy","nameLocation":"13865:11:3","parameters":{"id":2565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2564,"mutability":"mutable","name":"_poolId","nameLocation":"13885:7:3","nodeType":"VariableDeclaration","scope":2569,"src":"13877:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2563,"name":"uint256","nodeType":"ElementaryTypeName","src":"13877:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13876:17:3"},"returnParameters":{"id":2568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2569,"src":"13917:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2566,"name":"address","nodeType":"ElementaryTypeName","src":"13917:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13916:9:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2575,"nodeType":"FunctionDefinition","src":"14042:57:3","nodes":[],"documentation":{"id":2570,"nodeType":"StructuredDocumentation","src":"13932:105:3","text":"@notice Returns the current percent fee\n @return percentFee The current percentage for the fee"},"functionSelector":"4edbaadc","implemented":false,"kind":"function","modifiers":[],"name":"getPercentFee","nameLocation":"14051:13:3","parameters":{"id":2571,"nodeType":"ParameterList","parameters":[],"src":"14064:2:3"},"returnParameters":{"id":2574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2575,"src":"14090:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2572,"name":"uint256","nodeType":"ElementaryTypeName","src":"14090:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14089:9:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2581,"nodeType":"FunctionDefinition","src":"14195:54:3","nodes":[],"documentation":{"id":2576,"nodeType":"StructuredDocumentation","src":"14105:85:3","text":"@notice Returns the current base fee\n @return baseFee The current base fee"},"functionSelector":"15e812ad","implemented":false,"kind":"function","modifiers":[],"name":"getBaseFee","nameLocation":"14204:10:3","parameters":{"id":2577,"nodeType":"ParameterList","parameters":[],"src":"14214:2:3"},"returnParameters":{"id":2580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2581,"src":"14240:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2578,"name":"uint256","nodeType":"ElementaryTypeName","src":"14240:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14239:9:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2587,"nodeType":"FunctionDefinition","src":"14362:63:3","nodes":[],"documentation":{"id":2582,"nodeType":"StructuredDocumentation","src":"14255:102:3","text":"@notice Returns the current treasury address\n @return treasury The current treasury address"},"functionSelector":"3b19e84a","implemented":false,"kind":"function","modifiers":[],"name":"getTreasury","nameLocation":"14371:11:3","parameters":{"id":2583,"nodeType":"ParameterList","parameters":[],"src":"14382:2:3"},"returnParameters":{"id":2586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2587,"src":"14408:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":2584,"name":"address","nodeType":"ElementaryTypeName","src":"14408:15:3","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"14407:17:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2594,"nodeType":"FunctionDefinition","src":"14538:57:3","nodes":[],"documentation":{"id":2588,"nodeType":"StructuredDocumentation","src":"14431:102:3","text":"@notice Returns the current registry address\n @return registry The current registry address"},"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"14547:11:3","parameters":{"id":2589,"nodeType":"ParameterList","parameters":[],"src":"14558:2:3"},"returnParameters":{"id":2593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2594,"src":"14584:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":2591,"nodeType":"UserDefinedTypeName","pathNode":{"id":2590,"name":"IRegistry","nameLocations":["14584:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"14584:9:3"},"referencedDeclaration":2802,"src":"14584:9:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"14583:11:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2603,"nodeType":"FunctionDefinition","src":"14787:70:3","nodes":[],"documentation":{"id":2595,"nodeType":"StructuredDocumentation","src":"14601:181:3","text":"@notice Returns the 'Pool' struct for a given 'poolId'\n @param _poolId The ID of the pool to check\n @return pool The 'Pool' struct for the ID of the pool passed in"},"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"14796:7:3","parameters":{"id":2598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2597,"mutability":"mutable","name":"_poolId","nameLocation":"14812:7:3","nodeType":"VariableDeclaration","scope":2603,"src":"14804:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2596,"name":"uint256","nodeType":"ElementaryTypeName","src":"14804:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14803:17:3"},"returnParameters":{"id":2602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2603,"src":"14844:11:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":2600,"nodeType":"UserDefinedTypeName","pathNode":{"id":2599,"name":"Pool","nameLocations":["14844:4:3"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"14844:4:3"},"referencedDeclaration":2319,"src":"14844:4:3","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"14843:13:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2609,"nodeType":"FunctionDefinition","src":"15008:61:3","nodes":[],"documentation":{"id":2604,"nodeType":"StructuredDocumentation","src":"14863:140:3","text":"@notice Returns the current fee denominator\n @dev 1e18 represents 100%\n @return feeDenominator The current fee denominator"},"functionSelector":"f4e1fc41","implemented":false,"kind":"function","modifiers":[],"name":"getFeeDenominator","nameLocation":"15017:17:3","parameters":{"id":2605,"nodeType":"ParameterList","parameters":[],"src":"15034:2:3"},"returnParameters":{"id":2608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2609,"src":"15060:7:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2606,"name":"uint256","nodeType":"ElementaryTypeName","src":"15060:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15059:9:3"},"scope":2610,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IAllo","contractDependencies":[],"contractKind":"interface","documentation":{"id":2304,"nodeType":"StructuredDocumentation","src":"4234:297:3","text":"@title Allo Interface\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice Interface for the Allo contract. It exposes all functions needed to use the Allo protocol."},"fullyImplemented":false,"linearizedBaseContracts":[2610],"name":"IAllo","nameLocation":"4541:5:3","scope":2611,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":3} \ No newline at end of file diff --git a/pkg/contracts/out/IERC20.sol/IERC20.json b/pkg/contracts/out/IERC20.sol/IERC20.json index a312d1c6a..f8d87935c 100644 --- a/pkg/contracts/out/IERC20.sol/IERC20.json +++ b/pkg/contracts/out/IERC20.sol/IERC20.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.This includes the optional name, symbol, and decimals metadata.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"balanceOf(address)\":{\"notice\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"balanceOf(address)":{"notice":"Returns the amount of tokens owned by `account`."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"id":69} \ No newline at end of file +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.This includes the optional name, symbol, and decimals metadata.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"balanceOf(address)\":{\"notice\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/interfaces/IERC20.sol\":\"IERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"balanceOf(address)":{"notice":"Returns the amount of tokens owned by `account`."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/interfaces/IERC20.sol":"IERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/forge-std/src/interfaces/IERC20.sol","id":37999,"exportedSymbols":{"IERC20":[37998]},"nodeType":"SourceUnit","src":"32:2035:39","nodes":[{"id":37904,"nodeType":"PragmaDirective","src":"32:24:39","nodes":[],"literals":["solidity",">=","0.6",".2"]},{"id":37998,"nodeType":"ContractDefinition","src":"195:1871:39","nodes":[{"id":37914,"nodeType":"EventDefinition","src":"314:72:39","nodes":[],"anonymous":false,"documentation":{"id":37906,"nodeType":"StructuredDocumentation","src":"218:91:39","text":"@dev Emitted when `value` tokens are moved from one account (`from`) to another (`to`)."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"320:8:39","parameters":{"id":37913,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37908,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"345:4:39","nodeType":"VariableDeclaration","scope":37914,"src":"329:20:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37907,"name":"address","nodeType":"ElementaryTypeName","src":"329:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37910,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"367:2:39","nodeType":"VariableDeclaration","scope":37914,"src":"351:18:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37909,"name":"address","nodeType":"ElementaryTypeName","src":"351:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37912,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"379:5:39","nodeType":"VariableDeclaration","scope":37914,"src":"371:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37911,"name":"uint256","nodeType":"ElementaryTypeName","src":"371:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"328:57:39"}},{"id":37923,"nodeType":"EventDefinition","src":"514:78:39","nodes":[],"anonymous":false,"documentation":{"id":37915,"nodeType":"StructuredDocumentation","src":"392:117:39","text":"@dev Emitted when the allowance of a `spender` for an `owner` is set, where `value`\n is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"520:8:39","parameters":{"id":37922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37917,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"545:5:39","nodeType":"VariableDeclaration","scope":37923,"src":"529:21:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37916,"name":"address","nodeType":"ElementaryTypeName","src":"529:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37919,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"568:7:39","nodeType":"VariableDeclaration","scope":37923,"src":"552:23:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37918,"name":"address","nodeType":"ElementaryTypeName","src":"552:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37921,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"585:5:39","nodeType":"VariableDeclaration","scope":37923,"src":"577:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37920,"name":"uint256","nodeType":"ElementaryTypeName","src":"577:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"528:63:39"}},{"id":37929,"nodeType":"FunctionDefinition","src":"657:55:39","nodes":[],"documentation":{"id":37924,"nodeType":"StructuredDocumentation","src":"598:54:39","text":"@notice Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"666:11:39","parameters":{"id":37925,"nodeType":"ParameterList","parameters":[],"src":"677:2:39"},"returnParameters":{"id":37928,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37927,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37929,"src":"703:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37926,"name":"uint256","nodeType":"ElementaryTypeName","src":"703:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"702:9:39"},"scope":37998,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37937,"nodeType":"FunctionDefinition","src":"783:68:39","nodes":[],"documentation":{"id":37930,"nodeType":"StructuredDocumentation","src":"718:60:39","text":"@notice Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"792:9:39","parameters":{"id":37933,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37932,"mutability":"mutable","name":"account","nameLocation":"810:7:39","nodeType":"VariableDeclaration","scope":37937,"src":"802:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37931,"name":"address","nodeType":"ElementaryTypeName","src":"802:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"801:17:39"},"returnParameters":{"id":37936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37935,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37937,"src":"842:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37934,"name":"uint256","nodeType":"ElementaryTypeName","src":"842:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"841:9:39"},"scope":37998,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37947,"nodeType":"FunctionDefinition","src":"930:70:39","nodes":[],"documentation":{"id":37938,"nodeType":"StructuredDocumentation","src":"857:68:39","text":"@notice Moves `amount` tokens from the caller's account to `to`."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"939:8:39","parameters":{"id":37943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37940,"mutability":"mutable","name":"to","nameLocation":"956:2:39","nodeType":"VariableDeclaration","scope":37947,"src":"948:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37939,"name":"address","nodeType":"ElementaryTypeName","src":"948:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37942,"mutability":"mutable","name":"amount","nameLocation":"968:6:39","nodeType":"VariableDeclaration","scope":37947,"src":"960:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37941,"name":"uint256","nodeType":"ElementaryTypeName","src":"960:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"947:28:39"},"returnParameters":{"id":37946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37945,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37947,"src":"994:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37944,"name":"bool","nodeType":"ElementaryTypeName","src":"994:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"993:6:39"},"scope":37998,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":37957,"nodeType":"FunctionDefinition","src":"1125:83:39","nodes":[],"documentation":{"id":37948,"nodeType":"StructuredDocumentation","src":"1006:114:39","text":"@notice Returns the remaining number of tokens that `spender` is allowed\n to spend on behalf of `owner`"},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1134:9:39","parameters":{"id":37953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37950,"mutability":"mutable","name":"owner","nameLocation":"1152:5:39","nodeType":"VariableDeclaration","scope":37957,"src":"1144:13:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37949,"name":"address","nodeType":"ElementaryTypeName","src":"1144:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37952,"mutability":"mutable","name":"spender","nameLocation":"1167:7:39","nodeType":"VariableDeclaration","scope":37957,"src":"1159:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37951,"name":"address","nodeType":"ElementaryTypeName","src":"1159:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1143:32:39"},"returnParameters":{"id":37956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37955,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37957,"src":"1199:7:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37954,"name":"uint256","nodeType":"ElementaryTypeName","src":"1199:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1198:9:39"},"scope":37998,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37967,"nodeType":"FunctionDefinition","src":"1412:74:39","nodes":[],"documentation":{"id":37958,"nodeType":"StructuredDocumentation","src":"1214:193:39","text":"@notice Sets `amount` as the allowance of `spender` over the caller's tokens.\n @dev Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"1421:7:39","parameters":{"id":37963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37960,"mutability":"mutable","name":"spender","nameLocation":"1437:7:39","nodeType":"VariableDeclaration","scope":37967,"src":"1429:15:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37959,"name":"address","nodeType":"ElementaryTypeName","src":"1429:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37962,"mutability":"mutable","name":"amount","nameLocation":"1454:6:39","nodeType":"VariableDeclaration","scope":37967,"src":"1446:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37961,"name":"uint256","nodeType":"ElementaryTypeName","src":"1446:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1428:33:39"},"returnParameters":{"id":37966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37965,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37967,"src":"1480:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37964,"name":"bool","nodeType":"ElementaryTypeName","src":"1480:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1479:6:39"},"scope":37998,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":37979,"nodeType":"FunctionDefinition","src":"1644:88:39","nodes":[],"documentation":{"id":37968,"nodeType":"StructuredDocumentation","src":"1492:147:39","text":"@notice Moves `amount` tokens from `from` to `to` using the allowance mechanism.\n `amount` is then deducted from the caller's allowance."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1653:12:39","parameters":{"id":37975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37970,"mutability":"mutable","name":"from","nameLocation":"1674:4:39","nodeType":"VariableDeclaration","scope":37979,"src":"1666:12:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37969,"name":"address","nodeType":"ElementaryTypeName","src":"1666:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37972,"mutability":"mutable","name":"to","nameLocation":"1688:2:39","nodeType":"VariableDeclaration","scope":37979,"src":"1680:10:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":37971,"name":"address","nodeType":"ElementaryTypeName","src":"1680:7:39","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":37974,"mutability":"mutable","name":"amount","nameLocation":"1700:6:39","nodeType":"VariableDeclaration","scope":37979,"src":"1692:14:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":37973,"name":"uint256","nodeType":"ElementaryTypeName","src":"1692:7:39","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1665:42:39"},"returnParameters":{"id":37978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37977,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37979,"src":"1726:4:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":37976,"name":"bool","nodeType":"ElementaryTypeName","src":"1726:4:39","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1725:6:39"},"scope":37998,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":37985,"nodeType":"FunctionDefinition","src":"1785:54:39","nodes":[],"documentation":{"id":37980,"nodeType":"StructuredDocumentation","src":"1738:42:39","text":"@notice Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"1794:4:39","parameters":{"id":37981,"nodeType":"ParameterList","parameters":[],"src":"1798:2:39"},"returnParameters":{"id":37984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37983,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37985,"src":"1824:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37982,"name":"string","nodeType":"ElementaryTypeName","src":"1824:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1823:15:39"},"scope":37998,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37991,"nodeType":"FunctionDefinition","src":"1894:56:39","nodes":[],"documentation":{"id":37986,"nodeType":"StructuredDocumentation","src":"1845:44:39","text":"@notice Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"1903:6:39","parameters":{"id":37987,"nodeType":"ParameterList","parameters":[],"src":"1909:2:39"},"returnParameters":{"id":37990,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37989,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37991,"src":"1935:13:39","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37988,"name":"string","nodeType":"ElementaryTypeName","src":"1935:6:39","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1934:15:39"},"scope":37998,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":37997,"nodeType":"FunctionDefinition","src":"2014:50:39","nodes":[],"documentation":{"id":37992,"nodeType":"StructuredDocumentation","src":"1956:53:39","text":"@notice Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"2023:8:39","parameters":{"id":37993,"nodeType":"ParameterList","parameters":[],"src":"2031:2:39"},"returnParameters":{"id":37996,"nodeType":"ParameterList","parameters":[{"constant":false,"id":37995,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":37997,"src":"2057:5:39","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":37994,"name":"uint8","nodeType":"ElementaryTypeName","src":"2057:5:39","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2056:7:39"},"scope":37998,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20","contractDependencies":[],"contractKind":"interface","documentation":{"id":37905,"nodeType":"StructuredDocumentation","src":"58:137:39","text":"@dev Interface of the ERC20 standard as defined in the EIP.\n @dev This includes the optional name, symbol, and decimals metadata."},"fullyImplemented":false,"linearizedBaseContracts":[37998],"name":"IERC20","nameLocation":"205:6:39","scope":37999,"usedErrors":[]}],"license":"MIT"},"id":39} \ No newline at end of file diff --git a/pkg/contracts/out/IERC20Metadata.sol/IERC20Metadata.json b/pkg/contracts/out/IERC20Metadata.sol/IERC20Metadata.json index 96590d145..4e01426b1 100644 --- a/pkg/contracts/out/IERC20Metadata.sol/IERC20Metadata.json +++ b/pkg/contracts/out/IERC20Metadata.sol/IERC20Metadata.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"id":31} \ No newline at end of file +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface for the optional metadata functions from the ERC20 standard. _Available since v4.1._\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":\"IERC20Metadata\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"decimals()":{"details":"Returns the decimals places of the token."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":"IERC20Metadata"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","id":57143,"exportedSymbols":{"IERC20":[57117],"IERC20Metadata":[57142]},"nodeType":"SourceUnit","src":"110:573:75","nodes":[{"id":57119,"nodeType":"PragmaDirective","src":"110:23:75","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":57120,"nodeType":"ImportDirective","src":"135:23:75","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":57143,"sourceUnit":57118,"symbolAliases":[],"unitAlias":""},{"id":57142,"nodeType":"ContractDefinition","src":"277:405:75","nodes":[{"id":57129,"nodeType":"FunctionDefinition","src":"377:54:75","nodes":[],"documentation":{"id":57124,"nodeType":"StructuredDocumentation","src":"318:54:75","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":false,"kind":"function","modifiers":[],"name":"name","nameLocation":"386:4:75","parameters":{"id":57125,"nodeType":"ParameterList","parameters":[],"src":"390:2:75"},"returnParameters":{"id":57128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57127,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57129,"src":"416:13:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":57126,"name":"string","nodeType":"ElementaryTypeName","src":"416:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"415:15:75"},"scope":57142,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57135,"nodeType":"FunctionDefinition","src":"498:56:75","nodes":[],"documentation":{"id":57130,"nodeType":"StructuredDocumentation","src":"437:56:75","text":" @dev Returns the symbol of the token."},"functionSelector":"95d89b41","implemented":false,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"507:6:75","parameters":{"id":57131,"nodeType":"ParameterList","parameters":[],"src":"513:2:75"},"returnParameters":{"id":57134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57133,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57135,"src":"539:13:75","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":57132,"name":"string","nodeType":"ElementaryTypeName","src":"539:6:75","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"538:15:75"},"scope":57142,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57141,"nodeType":"FunctionDefinition","src":"630:50:75","nodes":[],"documentation":{"id":57136,"nodeType":"StructuredDocumentation","src":"560:65:75","text":" @dev Returns the decimals places of the token."},"functionSelector":"313ce567","implemented":false,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"639:8:75","parameters":{"id":57137,"nodeType":"ParameterList","parameters":[],"src":"647:2:75"},"returnParameters":{"id":57140,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57139,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57141,"src":"673:5:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57138,"name":"uint8","nodeType":"ElementaryTypeName","src":"673:5:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"672:7:75"},"scope":57142,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":57122,"name":"IERC20","nameLocations":["305:6:75"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"305:6:75"},"id":57123,"nodeType":"InheritanceSpecifier","src":"305:6:75"}],"canonicalName":"IERC20Metadata","contractDependencies":[],"contractKind":"interface","documentation":{"id":57121,"nodeType":"StructuredDocumentation","src":"160:116:75","text":" @dev Interface for the optional metadata functions from the ERC20 standard.\n _Available since v4.1._"},"fullyImplemented":false,"linearizedBaseContracts":[57142,57117],"name":"IERC20Metadata","nameLocation":"287:14:75","scope":57143,"usedErrors":[]}],"license":"MIT"},"id":75} \ No newline at end of file diff --git a/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json b/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json index c2fa0d86d..2895f17dd 100644 --- a/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json +++ b/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"}},"version":1},"id":32} \ No newline at end of file +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {} doThing(..., value); } function doThing(..., uint256 value) public { token.safeTransferFrom(msg.sender, address(this), value); ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","id":57179,"exportedSymbols":{"IERC20Permit":[57178]},"nodeType":"SourceUnit","src":"123:3679:76","nodes":[{"id":57144,"nodeType":"PragmaDirective","src":"123:23:76","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":57178,"nodeType":"ContractDefinition","src":"2112:1689:76","nodes":[{"id":57163,"nodeType":"FunctionDefinition","src":"2996:183:76","nodes":[],"documentation":{"id":57146,"nodeType":"StructuredDocumentation","src":"2141:850:76","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."},"functionSelector":"d505accf","implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3005:6:76","parameters":{"id":57161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57148,"mutability":"mutable","name":"owner","nameLocation":"3029:5:76","nodeType":"VariableDeclaration","scope":57163,"src":"3021:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57147,"name":"address","nodeType":"ElementaryTypeName","src":"3021:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57150,"mutability":"mutable","name":"spender","nameLocation":"3052:7:76","nodeType":"VariableDeclaration","scope":57163,"src":"3044:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57149,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57152,"mutability":"mutable","name":"value","nameLocation":"3077:5:76","nodeType":"VariableDeclaration","scope":57163,"src":"3069:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57154,"mutability":"mutable","name":"deadline","nameLocation":"3100:8:76","nodeType":"VariableDeclaration","scope":57163,"src":"3092:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57153,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57156,"mutability":"mutable","name":"v","nameLocation":"3124:1:76","nodeType":"VariableDeclaration","scope":57163,"src":"3118:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57155,"name":"uint8","nodeType":"ElementaryTypeName","src":"3118:5:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57158,"mutability":"mutable","name":"r","nameLocation":"3143:1:76","nodeType":"VariableDeclaration","scope":57163,"src":"3135:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57157,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3135:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":57160,"mutability":"mutable","name":"s","nameLocation":"3162:1:76","nodeType":"VariableDeclaration","scope":57163,"src":"3154:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57159,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3154:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3011:158:76"},"returnParameters":{"id":57162,"nodeType":"ParameterList","parameters":[],"src":"3178:0:76"},"scope":57178,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":57171,"nodeType":"FunctionDefinition","src":"3484:63:76","nodes":[],"documentation":{"id":57164,"nodeType":"StructuredDocumentation","src":"3185:294:76","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"3493:6:76","parameters":{"id":57167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57166,"mutability":"mutable","name":"owner","nameLocation":"3508:5:76","nodeType":"VariableDeclaration","scope":57171,"src":"3500:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57165,"name":"address","nodeType":"ElementaryTypeName","src":"3500:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3499:15:76"},"returnParameters":{"id":57170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57169,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57171,"src":"3538:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57168,"name":"uint256","nodeType":"ElementaryTypeName","src":"3538:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3537:9:76"},"scope":57178,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":57177,"nodeType":"FunctionDefinition","src":"3739:60:76","nodes":[],"documentation":{"id":57172,"nodeType":"StructuredDocumentation","src":"3553:128:76","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"3748:16:76","parameters":{"id":57173,"nodeType":"ParameterList","parameters":[],"src":"3764:2:76"},"returnParameters":{"id":57176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57175,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57177,"src":"3790:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57174,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3790:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3789:9:76"},"scope":57178,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":57145,"nodeType":"StructuredDocumentation","src":"148:1963:76","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n token.safeTransferFrom(msg.sender, address(this), value);\n ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."},"fullyImplemented":false,"linearizedBaseContracts":[57178],"name":"IERC20Permit","nameLocation":"2122:12:76","scope":57179,"usedErrors":[]}],"license":"MIT"},"id":76} \ No newline at end of file diff --git a/pkg/contracts/out/IERC20Upgradeable.sol/IERC20Upgradeable.json b/pkg/contracts/out/IERC20Upgradeable.sol/IERC20Upgradeable.json index aa57572db..34172d812 100644 --- a/pkg/contracts/out/IERC20Upgradeable.sol/IERC20Upgradeable.json +++ b/pkg/contracts/out/IERC20Upgradeable.sol/IERC20Upgradeable.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":\"IERC20Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":"IERC20Upgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"}},"version":1},"id":17} \ No newline at end of file +{"abi":[{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 standard as defined in the EIP.\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set by a call to {approve}. `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`). Note that `value` may be zero.\"}},\"kind\":\"dev\",\"methods\":{\"allowance(address,address)\":{\"details\":\"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `account`.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":\"IERC20Upgradeable\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"Returns the remaining number of tokens that `spender` will be allowed to spend on behalf of `owner` through {transferFrom}. This is zero by default. This value changes when {approve} or {transferFrom} are called."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Returns a boolean value indicating whether the operation succeeded. IMPORTANT: Beware that changing an allowance with this method brings the risk that someone may use both the old and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 Emits an {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `account`."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Moves `amount` tokens from the caller's account to `to`. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance. Returns a boolean value indicating whether the operation succeeded. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":"IERC20Upgradeable"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","id":53572,"exportedSymbols":{"IERC20Upgradeable":[53571]},"nodeType":"SourceUnit","src":"106:2642:51","nodes":[{"id":53495,"nodeType":"PragmaDirective","src":"106:23:51","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":53571,"nodeType":"ContractDefinition","src":"202:2545:51","nodes":[{"id":53505,"nodeType":"EventDefinition","src":"399:72:51","nodes":[],"anonymous":false,"documentation":{"id":53497,"nodeType":"StructuredDocumentation","src":"236:158:51","text":" @dev Emitted when `value` tokens are moved from one account (`from`) to\n another (`to`).\n Note that `value` may be zero."},"eventSelector":"ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","name":"Transfer","nameLocation":"405:8:51","parameters":{"id":53504,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53499,"indexed":true,"mutability":"mutable","name":"from","nameLocation":"430:4:51","nodeType":"VariableDeclaration","scope":53505,"src":"414:20:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53498,"name":"address","nodeType":"ElementaryTypeName","src":"414:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53501,"indexed":true,"mutability":"mutable","name":"to","nameLocation":"452:2:51","nodeType":"VariableDeclaration","scope":53505,"src":"436:18:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53500,"name":"address","nodeType":"ElementaryTypeName","src":"436:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53503,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"464:5:51","nodeType":"VariableDeclaration","scope":53505,"src":"456:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53502,"name":"uint256","nodeType":"ElementaryTypeName","src":"456:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"413:57:51"}},{"id":53514,"nodeType":"EventDefinition","src":"630:78:51","nodes":[],"anonymous":false,"documentation":{"id":53506,"nodeType":"StructuredDocumentation","src":"477:148:51","text":" @dev Emitted when the allowance of a `spender` for an `owner` is set by\n a call to {approve}. `value` is the new allowance."},"eventSelector":"8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","name":"Approval","nameLocation":"636:8:51","parameters":{"id":53513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53508,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"661:5:51","nodeType":"VariableDeclaration","scope":53514,"src":"645:21:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53507,"name":"address","nodeType":"ElementaryTypeName","src":"645:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53510,"indexed":true,"mutability":"mutable","name":"spender","nameLocation":"684:7:51","nodeType":"VariableDeclaration","scope":53514,"src":"668:23:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53509,"name":"address","nodeType":"ElementaryTypeName","src":"668:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53512,"indexed":false,"mutability":"mutable","name":"value","nameLocation":"701:5:51","nodeType":"VariableDeclaration","scope":53514,"src":"693:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53511,"name":"uint256","nodeType":"ElementaryTypeName","src":"693:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"644:63:51"}},{"id":53520,"nodeType":"FunctionDefinition","src":"785:55:51","nodes":[],"documentation":{"id":53515,"nodeType":"StructuredDocumentation","src":"714:66:51","text":" @dev Returns the amount of tokens in existence."},"functionSelector":"18160ddd","implemented":false,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"794:11:51","parameters":{"id":53516,"nodeType":"ParameterList","parameters":[],"src":"805:2:51"},"returnParameters":{"id":53519,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53518,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53520,"src":"831:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53517,"name":"uint256","nodeType":"ElementaryTypeName","src":"831:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"830:9:51"},"scope":53571,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53528,"nodeType":"FunctionDefinition","src":"923:68:51","nodes":[],"documentation":{"id":53521,"nodeType":"StructuredDocumentation","src":"846:72:51","text":" @dev Returns the amount of tokens owned by `account`."},"functionSelector":"70a08231","implemented":false,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"932:9:51","parameters":{"id":53524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53523,"mutability":"mutable","name":"account","nameLocation":"950:7:51","nodeType":"VariableDeclaration","scope":53528,"src":"942:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53522,"name":"address","nodeType":"ElementaryTypeName","src":"942:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"941:17:51"},"returnParameters":{"id":53527,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53526,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53528,"src":"982:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53525,"name":"uint256","nodeType":"ElementaryTypeName","src":"982:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"981:9:51"},"scope":53571,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53538,"nodeType":"FunctionDefinition","src":"1204:70:51","nodes":[],"documentation":{"id":53529,"nodeType":"StructuredDocumentation","src":"997:202:51","text":" @dev Moves `amount` tokens from the caller's account to `to`.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"a9059cbb","implemented":false,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1213:8:51","parameters":{"id":53534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53531,"mutability":"mutable","name":"to","nameLocation":"1230:2:51","nodeType":"VariableDeclaration","scope":53538,"src":"1222:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53530,"name":"address","nodeType":"ElementaryTypeName","src":"1222:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53533,"mutability":"mutable","name":"amount","nameLocation":"1242:6:51","nodeType":"VariableDeclaration","scope":53538,"src":"1234:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53532,"name":"uint256","nodeType":"ElementaryTypeName","src":"1234:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1221:28:51"},"returnParameters":{"id":53537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53538,"src":"1268:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53535,"name":"bool","nodeType":"ElementaryTypeName","src":"1268:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1267:6:51"},"scope":53571,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53548,"nodeType":"FunctionDefinition","src":"1549:83:51","nodes":[],"documentation":{"id":53539,"nodeType":"StructuredDocumentation","src":"1280:264:51","text":" @dev Returns the remaining number of tokens that `spender` will be\n allowed to spend on behalf of `owner` through {transferFrom}. This is\n zero by default.\n This value changes when {approve} or {transferFrom} are called."},"functionSelector":"dd62ed3e","implemented":false,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1558:9:51","parameters":{"id":53544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53541,"mutability":"mutable","name":"owner","nameLocation":"1576:5:51","nodeType":"VariableDeclaration","scope":53548,"src":"1568:13:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53540,"name":"address","nodeType":"ElementaryTypeName","src":"1568:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53543,"mutability":"mutable","name":"spender","nameLocation":"1591:7:51","nodeType":"VariableDeclaration","scope":53548,"src":"1583:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53542,"name":"address","nodeType":"ElementaryTypeName","src":"1583:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1567:32:51"},"returnParameters":{"id":53547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53546,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53548,"src":"1623:7:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53545,"name":"uint256","nodeType":"ElementaryTypeName","src":"1623:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1622:9:51"},"scope":53571,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":53558,"nodeType":"FunctionDefinition","src":"2285:74:51","nodes":[],"documentation":{"id":53549,"nodeType":"StructuredDocumentation","src":"1638:642:51","text":" @dev Sets `amount` as the allowance of `spender` over the caller's tokens.\n Returns a boolean value indicating whether the operation succeeded.\n IMPORTANT: Beware that changing an allowance with this method brings the risk\n that someone may use both the old and the new allowance by unfortunate\n transaction ordering. One possible solution to mitigate this race\n condition is to first reduce the spender's allowance to 0 and set the\n desired value afterwards:\n https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\n Emits an {Approval} event."},"functionSelector":"095ea7b3","implemented":false,"kind":"function","modifiers":[],"name":"approve","nameLocation":"2294:7:51","parameters":{"id":53554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53551,"mutability":"mutable","name":"spender","nameLocation":"2310:7:51","nodeType":"VariableDeclaration","scope":53558,"src":"2302:15:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53550,"name":"address","nodeType":"ElementaryTypeName","src":"2302:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53553,"mutability":"mutable","name":"amount","nameLocation":"2327:6:51","nodeType":"VariableDeclaration","scope":53558,"src":"2319:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53552,"name":"uint256","nodeType":"ElementaryTypeName","src":"2319:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2301:33:51"},"returnParameters":{"id":53557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53556,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53558,"src":"2353:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53555,"name":"bool","nodeType":"ElementaryTypeName","src":"2353:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2352:6:51"},"scope":53571,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":53570,"nodeType":"FunctionDefinition","src":"2657:88:51","nodes":[],"documentation":{"id":53559,"nodeType":"StructuredDocumentation","src":"2365:287:51","text":" @dev Moves `amount` tokens from `from` to `to` using the\n allowance mechanism. `amount` is then deducted from the caller's\n allowance.\n Returns a boolean value indicating whether the operation succeeded.\n Emits a {Transfer} event."},"functionSelector":"23b872dd","implemented":false,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"2666:12:51","parameters":{"id":53566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53561,"mutability":"mutable","name":"from","nameLocation":"2687:4:51","nodeType":"VariableDeclaration","scope":53570,"src":"2679:12:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53560,"name":"address","nodeType":"ElementaryTypeName","src":"2679:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53563,"mutability":"mutable","name":"to","nameLocation":"2701:2:51","nodeType":"VariableDeclaration","scope":53570,"src":"2693:10:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53562,"name":"address","nodeType":"ElementaryTypeName","src":"2693:7:51","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":53565,"mutability":"mutable","name":"amount","nameLocation":"2713:6:51","nodeType":"VariableDeclaration","scope":53570,"src":"2705:14:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":53564,"name":"uint256","nodeType":"ElementaryTypeName","src":"2705:7:51","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2678:42:51"},"returnParameters":{"id":53569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":53568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":53570,"src":"2739:4:51","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":53567,"name":"bool","nodeType":"ElementaryTypeName","src":"2739:4:51","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2738:6:51"},"scope":53571,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Upgradeable","contractDependencies":[],"contractKind":"interface","documentation":{"id":53496,"nodeType":"StructuredDocumentation","src":"131:70:51","text":" @dev Interface of the ERC20 standard as defined in the EIP."},"fullyImplemented":false,"linearizedBaseContracts":[53571],"name":"IERC20Upgradeable","nameLocation":"212:17:51","scope":53572,"usedErrors":[]}],"license":"MIT"},"id":51} \ No newline at end of file diff --git a/pkg/contracts/out/IRegistry.sol/IRegistry.json b/pkg/contracts/out/IRegistry.sol/IRegistry.json index ba598b43a..cef1066fc 100644 --- a/pkg/contracts/out/IRegistry.sol/IRegistry.json +++ b/pkg/contracts/out/IRegistry.sol/IRegistry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"acceptProfileOwnership","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProfile","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_name","type":"string","internalType":"string"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_owner","type":"address","internalType":"address"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"profileId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getProfileByAnchor","inputs":[{"name":"_anchor","type":"address","internalType":"address"}],"outputs":[{"name":"profile","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getProfileById","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"profile","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"isMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"isMemberOfProfile","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"isOwnerOfProfile","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOrMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"isOwnerOrMemberOfProfile","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileMetadata","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileName","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfilePendingOwner","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ProfileCreated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileMetadataUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"ProfileNameUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfilePendingOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pendingOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"acceptProfileOwnership(bytes32)":"2497f3c6","addMembers(bytes32,address[])":"5063f361","createProfile(uint256,string,(uint256,string),address,address[])":"3a92f65f","getProfileByAnchor(address)":"dd93da43","getProfileById(bytes32)":"0114cf0a","isMemberOfProfile(bytes32,address)":"0ec1fbac","isOwnerOfProfile(bytes32,address)":"39b86b8c","isOwnerOrMemberOfProfile(bytes32,address)":"5e8a7915","recoverFunds(address,address)":"24ae6a27","removeMembers(bytes32,address[])":"e0cf1e4c","updateProfileMetadata(bytes32,(uint256,string))":"ac402839","updateProfileName(bytes32,string)":"cf189ff2","updateProfilePendingOwner(bytes32,address)":"3b66dacd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"ProfileMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileNameUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ProfilePendingOwnerUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"acceptProfileOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"getProfileByAnchor\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"profile\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"getProfileById\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"profile\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMemberOfProfile\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOwnerOfProfile\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isOwnerOrMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOwnerOrMemberOfProfile\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"removeMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updateProfileMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"updateProfileName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pendingOwner\",\"type\":\"address\"}],\"name\":\"updateProfilePendingOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"The Registry Interface is used to interact with the Allo protocol and create profiles that can be used to interact with the Allo protocol. The Registry is the main contract that all other contracts interact with to get the 'Profile' information needed to interact with the Allo protocol. The Registry is also used to create new profiles and update existing profiles. The Registry is also used to add and remove members from a profile. The Registry will not always be used in a strategy and will depend on the strategy being used.\",\"events\":{\"ProfileCreated(bytes32,uint256,string,(uint256,string),address,address)\":{\"details\":\"Emitted when a profile is created. This will return your anchor address.\"},\"ProfileMetadataUpdated(bytes32,(uint256,string))\":{\"details\":\"Emitted when a profile's metadata is updated.\"},\"ProfileNameUpdated(bytes32,string,address)\":{\"details\":\"Emitted when a profile name is updated. This will update the anchor when the name is updated and return it.\"},\"ProfileOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile owner is updated.\"},\"ProfilePendingOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile pending owner is updated.\"}},\"kind\":\"dev\",\"methods\":{\"acceptProfileOwnership(bytes32)\":{\"details\":\"Accepts the pending 'owner' of the '_profileId' passed in Requirements: Only the pending owner can accept the ownership\",\"params\":{\"_profileId\":\"The 'profileId' to accept the ownership for\"}},\"addMembers(bytes32,address[])\":{\"details\":\"Adds members to the '_profileId' passed in Requirements: Only the 'Profile' owner can add members\",\"params\":{\"_members\":\"The members to add to the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to add members to\"}},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"details\":\"Creates a new 'Profile' and returns the 'profileId' of the new profile Note: The 'name' and 'nonce' are used to generate the 'anchor' address Requirements: None, anyone can create a new profile\",\"params\":{\"_members\":\"The 'members' to use to generate the 'anchor' address\",\"_metadata\":\"The 'Metadata' to use to generate the 'anchor' address\",\"_name\":\"The name to use to generate the 'anchor' address\",\"_nonce\":\"The nonce to use to generate the 'anchor' address\",\"_owner\":\"The 'owner' to use to generate the 'anchor' address\"},\"returns\":{\"profileId\":\"The 'profileId' of the new profile\"}},\"getProfileByAnchor(address)\":{\"details\":\"Returns the 'Profile' for an '_anchor' passed\",\"params\":{\"_anchor\":\"The 'anchor' to return the 'Profile' for\"},\"returns\":{\"profile\":\"The 'Profile' for the '_anchor' passed\"}},\"getProfileById(bytes32)\":{\"details\":\"Returns the 'Profile' for a '_profileId' passed\",\"params\":{\"_profileId\":\"The 'profileId' to return the 'Profile' for\"},\"returns\":{\"profile\":\"The 'Profile' for the '_profileId' passed\"}},\"isMemberOfProfile(bytes32,address)\":{\"details\":\"Returns a boolean if the '_account' is a member of the '_profileId' passed in\",\"params\":{\"_member\":\"The 'member' to check if they are a member of the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to check if the '_account' is a member of\"},\"returns\":{\"isMemberOfProfile\":\"A boolean if the '_account' is a member of the '_profileId' passed in\"}},\"isOwnerOfProfile(bytes32,address)\":{\"details\":\"Returns a boolean if the '_account' is an owner of the '_profileId' passed in\",\"params\":{\"_owner\":\"The 'owner' to check if they are an owner of the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to check if the '_account' is an owner of\"},\"returns\":{\"isOwnerOfProfile\":\"A boolean if the '_account' is an owner of the '_profileId' passed in\"}},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"details\":\"Returns a boolean if the '_account' is a member or owner of the '_profileId' passed in\",\"params\":{\"_account\":\"The 'account' to check if they are a member or owner of the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to check if the '_account' is a member or owner of\"},\"returns\":{\"isOwnerOrMemberOfProfile\":\"A boolean if the '_account' is a member or owner of the '_profileId' passed in\"}},\"recoverFunds(address,address)\":{\"details\":\"Recovers funds from the contract Requirements: Must be the Allo owner\",\"params\":{\"_recipient\":\"The recipient of the recovered funds\",\"_token\":\"The token you want to use to recover funds\"}},\"removeMembers(bytes32,address[])\":{\"details\":\"Removes members from the '_profileId' passed in Requirements: Only the 'Profile' owner can remove members\",\"params\":{\"_members\":\"The members to remove from the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to remove members from\"}},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"details\":\"Updates the 'Metadata' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the metadata\",\"params\":{\"_metadata\":\"The new 'Metadata' value\",\"_profileId\":\"The 'profileId' to update the metadata for\"}},\"updateProfileName(bytes32,string)\":{\"details\":\"Updates the 'name' of the '_profileId' passed in and returns the new 'anchor' address Requirements: Only the 'Profile' owner can update the name Note: The 'name' and 'nonce' are used to generate the 'anchor' address and this will update the 'anchor' so please use caution. You can always recreate your 'anchor' address by updating the name back to the original name used to create the profile.\",\"params\":{\"_name\":\"The new 'name' value\",\"_profileId\":\"The 'profileId' to update the name for\"},\"returns\":{\"anchor\":\"The new 'anchor' address\"}},\"updateProfilePendingOwner(bytes32,address)\":{\"details\":\"Updates the pending 'owner' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the pending owner\",\"params\":{\"_pendingOwner\":\"The new pending 'owner' value\",\"_profileId\":\"The 'profileId' to update the pending owner for\"}}},\"title\":\"IRegistry Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for the Registry contract and exposes all functions needed to use the Registry within the Allo protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":\"IRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"ProfileMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileNameUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ProfileOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":false}],"type":"event","name":"ProfilePendingOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"acceptProfileOwnership"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"createProfile","outputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_anchor","type":"address"}],"stateMutability":"view","type":"function","name":"getProfileByAnchor","outputs":[{"internalType":"struct IRegistry.Profile","name":"profile","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getProfileById","outputs":[{"internalType":"struct IRegistry.Profile","name":"profile","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMemberOfProfile","outputs":[{"internalType":"bool","name":"isMemberOfProfile","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOfProfile","outputs":[{"internalType":"bool","name":"isOwnerOfProfile","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOrMemberOfProfile","outputs":[{"internalType":"bool","name":"isOwnerOrMemberOfProfile","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMembers"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updateProfileMetadata"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProfileName","outputs":[{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateProfilePendingOwner"}],"devdoc":{"kind":"dev","methods":{"acceptProfileOwnership(bytes32)":{"details":"Accepts the pending 'owner' of the '_profileId' passed in Requirements: Only the pending owner can accept the ownership","params":{"_profileId":"The 'profileId' to accept the ownership for"}},"addMembers(bytes32,address[])":{"details":"Adds members to the '_profileId' passed in Requirements: Only the 'Profile' owner can add members","params":{"_members":"The members to add to the '_profileId' passed in","_profileId":"The 'profileId' to add members to"}},"createProfile(uint256,string,(uint256,string),address,address[])":{"details":"Creates a new 'Profile' and returns the 'profileId' of the new profile Note: The 'name' and 'nonce' are used to generate the 'anchor' address Requirements: None, anyone can create a new profile","params":{"_members":"The 'members' to use to generate the 'anchor' address","_metadata":"The 'Metadata' to use to generate the 'anchor' address","_name":"The name to use to generate the 'anchor' address","_nonce":"The nonce to use to generate the 'anchor' address","_owner":"The 'owner' to use to generate the 'anchor' address"},"returns":{"profileId":"The 'profileId' of the new profile"}},"getProfileByAnchor(address)":{"details":"Returns the 'Profile' for an '_anchor' passed","params":{"_anchor":"The 'anchor' to return the 'Profile' for"},"returns":{"profile":"The 'Profile' for the '_anchor' passed"}},"getProfileById(bytes32)":{"details":"Returns the 'Profile' for a '_profileId' passed","params":{"_profileId":"The 'profileId' to return the 'Profile' for"},"returns":{"profile":"The 'Profile' for the '_profileId' passed"}},"isMemberOfProfile(bytes32,address)":{"details":"Returns a boolean if the '_account' is a member of the '_profileId' passed in","params":{"_member":"The 'member' to check if they are a member of the '_profileId' passed in","_profileId":"The 'profileId' to check if the '_account' is a member of"},"returns":{"isMemberOfProfile":"A boolean if the '_account' is a member of the '_profileId' passed in"}},"isOwnerOfProfile(bytes32,address)":{"details":"Returns a boolean if the '_account' is an owner of the '_profileId' passed in","params":{"_owner":"The 'owner' to check if they are an owner of the '_profileId' passed in","_profileId":"The 'profileId' to check if the '_account' is an owner of"},"returns":{"isOwnerOfProfile":"A boolean if the '_account' is an owner of the '_profileId' passed in"}},"isOwnerOrMemberOfProfile(bytes32,address)":{"details":"Returns a boolean if the '_account' is a member or owner of the '_profileId' passed in","params":{"_account":"The 'account' to check if they are a member or owner of the '_profileId' passed in","_profileId":"The 'profileId' to check if the '_account' is a member or owner of"},"returns":{"isOwnerOrMemberOfProfile":"A boolean if the '_account' is a member or owner of the '_profileId' passed in"}},"recoverFunds(address,address)":{"details":"Recovers funds from the contract Requirements: Must be the Allo owner","params":{"_recipient":"The recipient of the recovered funds","_token":"The token you want to use to recover funds"}},"removeMembers(bytes32,address[])":{"details":"Removes members from the '_profileId' passed in Requirements: Only the 'Profile' owner can remove members","params":{"_members":"The members to remove from the '_profileId' passed in","_profileId":"The 'profileId' to remove members from"}},"updateProfileMetadata(bytes32,(uint256,string))":{"details":"Updates the 'Metadata' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the metadata","params":{"_metadata":"The new 'Metadata' value","_profileId":"The 'profileId' to update the metadata for"}},"updateProfileName(bytes32,string)":{"details":"Updates the 'name' of the '_profileId' passed in and returns the new 'anchor' address Requirements: Only the 'Profile' owner can update the name Note: The 'name' and 'nonce' are used to generate the 'anchor' address and this will update the 'anchor' so please use caution. You can always recreate your 'anchor' address by updating the name back to the original name used to create the profile.","params":{"_name":"The new 'name' value","_profileId":"The 'profileId' to update the name for"},"returns":{"anchor":"The new 'anchor' address"}},"updateProfilePendingOwner(bytes32,address)":{"details":"Updates the pending 'owner' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the pending owner","params":{"_pendingOwner":"The new pending 'owner' value","_profileId":"The 'profileId' to update the pending owner for"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":"IRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"}},"version":1},"id":4} \ No newline at end of file +{"abi":[{"type":"function","name":"acceptProfileOwnership","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"createProfile","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_name","type":"string","internalType":"string"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_owner","type":"address","internalType":"address"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"profileId","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getProfileByAnchor","inputs":[{"name":"_anchor","type":"address","internalType":"address"}],"outputs":[{"name":"profile","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getProfileById","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"profile","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"isMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"isMemberOfProfile","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"isOwnerOfProfile","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOrMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"isOwnerOrMemberOfProfile","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileMetadata","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileName","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfilePendingOwner","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ProfileCreated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileMetadataUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"ProfileNameUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfilePendingOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pendingOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"acceptProfileOwnership(bytes32)":"2497f3c6","addMembers(bytes32,address[])":"5063f361","createProfile(uint256,string,(uint256,string),address,address[])":"3a92f65f","getProfileByAnchor(address)":"dd93da43","getProfileById(bytes32)":"0114cf0a","isMemberOfProfile(bytes32,address)":"0ec1fbac","isOwnerOfProfile(bytes32,address)":"39b86b8c","isOwnerOrMemberOfProfile(bytes32,address)":"5e8a7915","recoverFunds(address,address)":"24ae6a27","removeMembers(bytes32,address[])":"e0cf1e4c","updateProfileMetadata(bytes32,(uint256,string))":"ac402839","updateProfileName(bytes32,string)":"cf189ff2","updateProfilePendingOwner(bytes32,address)":"3b66dacd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"ProfileMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileNameUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ProfilePendingOwnerUpdated\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"acceptProfileOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"getProfileByAnchor\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"profile\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"getProfileById\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"profile\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isMemberOfProfile\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOwnerOfProfile\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isOwnerOrMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isOwnerOrMemberOfProfile\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"removeMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updateProfileMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"updateProfileName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pendingOwner\",\"type\":\"address\"}],\"name\":\"updateProfilePendingOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"The Registry Interface is used to interact with the Allo protocol and create profiles that can be used to interact with the Allo protocol. The Registry is the main contract that all other contracts interact with to get the 'Profile' information needed to interact with the Allo protocol. The Registry is also used to create new profiles and update existing profiles. The Registry is also used to add and remove members from a profile. The Registry will not always be used in a strategy and will depend on the strategy being used.\",\"events\":{\"ProfileCreated(bytes32,uint256,string,(uint256,string),address,address)\":{\"details\":\"Emitted when a profile is created. This will return your anchor address.\"},\"ProfileMetadataUpdated(bytes32,(uint256,string))\":{\"details\":\"Emitted when a profile's metadata is updated.\"},\"ProfileNameUpdated(bytes32,string,address)\":{\"details\":\"Emitted when a profile name is updated. This will update the anchor when the name is updated and return it.\"},\"ProfileOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile owner is updated.\"},\"ProfilePendingOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile pending owner is updated.\"}},\"kind\":\"dev\",\"methods\":{\"acceptProfileOwnership(bytes32)\":{\"details\":\"Accepts the pending 'owner' of the '_profileId' passed in Requirements: Only the pending owner can accept the ownership\",\"params\":{\"_profileId\":\"The 'profileId' to accept the ownership for\"}},\"addMembers(bytes32,address[])\":{\"details\":\"Adds members to the '_profileId' passed in Requirements: Only the 'Profile' owner can add members\",\"params\":{\"_members\":\"The members to add to the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to add members to\"}},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"details\":\"Creates a new 'Profile' and returns the 'profileId' of the new profile Note: The 'name' and 'nonce' are used to generate the 'anchor' address Requirements: None, anyone can create a new profile\",\"params\":{\"_members\":\"The 'members' to use to generate the 'anchor' address\",\"_metadata\":\"The 'Metadata' to use to generate the 'anchor' address\",\"_name\":\"The name to use to generate the 'anchor' address\",\"_nonce\":\"The nonce to use to generate the 'anchor' address\",\"_owner\":\"The 'owner' to use to generate the 'anchor' address\"},\"returns\":{\"profileId\":\"The 'profileId' of the new profile\"}},\"getProfileByAnchor(address)\":{\"details\":\"Returns the 'Profile' for an '_anchor' passed\",\"params\":{\"_anchor\":\"The 'anchor' to return the 'Profile' for\"},\"returns\":{\"profile\":\"The 'Profile' for the '_anchor' passed\"}},\"getProfileById(bytes32)\":{\"details\":\"Returns the 'Profile' for a '_profileId' passed\",\"params\":{\"_profileId\":\"The 'profileId' to return the 'Profile' for\"},\"returns\":{\"profile\":\"The 'Profile' for the '_profileId' passed\"}},\"isMemberOfProfile(bytes32,address)\":{\"details\":\"Returns a boolean if the '_account' is a member of the '_profileId' passed in\",\"params\":{\"_member\":\"The 'member' to check if they are a member of the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to check if the '_account' is a member of\"},\"returns\":{\"isMemberOfProfile\":\"A boolean if the '_account' is a member of the '_profileId' passed in\"}},\"isOwnerOfProfile(bytes32,address)\":{\"details\":\"Returns a boolean if the '_account' is an owner of the '_profileId' passed in\",\"params\":{\"_owner\":\"The 'owner' to check if they are an owner of the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to check if the '_account' is an owner of\"},\"returns\":{\"isOwnerOfProfile\":\"A boolean if the '_account' is an owner of the '_profileId' passed in\"}},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"details\":\"Returns a boolean if the '_account' is a member or owner of the '_profileId' passed in\",\"params\":{\"_account\":\"The 'account' to check if they are a member or owner of the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to check if the '_account' is a member or owner of\"},\"returns\":{\"isOwnerOrMemberOfProfile\":\"A boolean if the '_account' is a member or owner of the '_profileId' passed in\"}},\"recoverFunds(address,address)\":{\"details\":\"Recovers funds from the contract Requirements: Must be the Allo owner\",\"params\":{\"_recipient\":\"The recipient of the recovered funds\",\"_token\":\"The token you want to use to recover funds\"}},\"removeMembers(bytes32,address[])\":{\"details\":\"Removes members from the '_profileId' passed in Requirements: Only the 'Profile' owner can remove members\",\"params\":{\"_members\":\"The members to remove from the '_profileId' passed in\",\"_profileId\":\"The 'profileId' to remove members from\"}},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"details\":\"Updates the 'Metadata' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the metadata\",\"params\":{\"_metadata\":\"The new 'Metadata' value\",\"_profileId\":\"The 'profileId' to update the metadata for\"}},\"updateProfileName(bytes32,string)\":{\"details\":\"Updates the 'name' of the '_profileId' passed in and returns the new 'anchor' address Requirements: Only the 'Profile' owner can update the name Note: The 'name' and 'nonce' are used to generate the 'anchor' address and this will update the 'anchor' so please use caution. You can always recreate your 'anchor' address by updating the name back to the original name used to create the profile.\",\"params\":{\"_name\":\"The new 'name' value\",\"_profileId\":\"The 'profileId' to update the name for\"},\"returns\":{\"anchor\":\"The new 'anchor' address\"}},\"updateProfilePendingOwner(bytes32,address)\":{\"details\":\"Updates the pending 'owner' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the pending owner\",\"params\":{\"_pendingOwner\":\"The new pending 'owner' value\",\"_profileId\":\"The 'profileId' to update the pending owner for\"}}},\"title\":\"IRegistry Interface\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"Interface for the Registry contract and exposes all functions needed to use the Registry within the Allo protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":\"IRegistry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"ProfileMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileNameUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ProfileOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":false}],"type":"event","name":"ProfilePendingOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"acceptProfileOwnership"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"createProfile","outputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_anchor","type":"address"}],"stateMutability":"view","type":"function","name":"getProfileByAnchor","outputs":[{"internalType":"struct IRegistry.Profile","name":"profile","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getProfileById","outputs":[{"internalType":"struct IRegistry.Profile","name":"profile","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMemberOfProfile","outputs":[{"internalType":"bool","name":"isMemberOfProfile","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOfProfile","outputs":[{"internalType":"bool","name":"isOwnerOfProfile","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOrMemberOfProfile","outputs":[{"internalType":"bool","name":"isOwnerOrMemberOfProfile","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMembers"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updateProfileMetadata"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProfileName","outputs":[{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateProfilePendingOwner"}],"devdoc":{"kind":"dev","methods":{"acceptProfileOwnership(bytes32)":{"details":"Accepts the pending 'owner' of the '_profileId' passed in Requirements: Only the pending owner can accept the ownership","params":{"_profileId":"The 'profileId' to accept the ownership for"}},"addMembers(bytes32,address[])":{"details":"Adds members to the '_profileId' passed in Requirements: Only the 'Profile' owner can add members","params":{"_members":"The members to add to the '_profileId' passed in","_profileId":"The 'profileId' to add members to"}},"createProfile(uint256,string,(uint256,string),address,address[])":{"details":"Creates a new 'Profile' and returns the 'profileId' of the new profile Note: The 'name' and 'nonce' are used to generate the 'anchor' address Requirements: None, anyone can create a new profile","params":{"_members":"The 'members' to use to generate the 'anchor' address","_metadata":"The 'Metadata' to use to generate the 'anchor' address","_name":"The name to use to generate the 'anchor' address","_nonce":"The nonce to use to generate the 'anchor' address","_owner":"The 'owner' to use to generate the 'anchor' address"},"returns":{"profileId":"The 'profileId' of the new profile"}},"getProfileByAnchor(address)":{"details":"Returns the 'Profile' for an '_anchor' passed","params":{"_anchor":"The 'anchor' to return the 'Profile' for"},"returns":{"profile":"The 'Profile' for the '_anchor' passed"}},"getProfileById(bytes32)":{"details":"Returns the 'Profile' for a '_profileId' passed","params":{"_profileId":"The 'profileId' to return the 'Profile' for"},"returns":{"profile":"The 'Profile' for the '_profileId' passed"}},"isMemberOfProfile(bytes32,address)":{"details":"Returns a boolean if the '_account' is a member of the '_profileId' passed in","params":{"_member":"The 'member' to check if they are a member of the '_profileId' passed in","_profileId":"The 'profileId' to check if the '_account' is a member of"},"returns":{"isMemberOfProfile":"A boolean if the '_account' is a member of the '_profileId' passed in"}},"isOwnerOfProfile(bytes32,address)":{"details":"Returns a boolean if the '_account' is an owner of the '_profileId' passed in","params":{"_owner":"The 'owner' to check if they are an owner of the '_profileId' passed in","_profileId":"The 'profileId' to check if the '_account' is an owner of"},"returns":{"isOwnerOfProfile":"A boolean if the '_account' is an owner of the '_profileId' passed in"}},"isOwnerOrMemberOfProfile(bytes32,address)":{"details":"Returns a boolean if the '_account' is a member or owner of the '_profileId' passed in","params":{"_account":"The 'account' to check if they are a member or owner of the '_profileId' passed in","_profileId":"The 'profileId' to check if the '_account' is a member or owner of"},"returns":{"isOwnerOrMemberOfProfile":"A boolean if the '_account' is a member or owner of the '_profileId' passed in"}},"recoverFunds(address,address)":{"details":"Recovers funds from the contract Requirements: Must be the Allo owner","params":{"_recipient":"The recipient of the recovered funds","_token":"The token you want to use to recover funds"}},"removeMembers(bytes32,address[])":{"details":"Removes members from the '_profileId' passed in Requirements: Only the 'Profile' owner can remove members","params":{"_members":"The members to remove from the '_profileId' passed in","_profileId":"The 'profileId' to remove members from"}},"updateProfileMetadata(bytes32,(uint256,string))":{"details":"Updates the 'Metadata' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the metadata","params":{"_metadata":"The new 'Metadata' value","_profileId":"The 'profileId' to update the metadata for"}},"updateProfileName(bytes32,string)":{"details":"Updates the 'name' of the '_profileId' passed in and returns the new 'anchor' address Requirements: Only the 'Profile' owner can update the name Note: The 'name' and 'nonce' are used to generate the 'anchor' address and this will update the 'anchor' so please use caution. You can always recreate your 'anchor' address by updating the name back to the original name used to create the profile.","params":{"_name":"The new 'name' value","_profileId":"The 'profileId' to update the name for"},"returns":{"anchor":"The new 'anchor' address"}},"updateProfilePendingOwner(bytes32,address)":{"details":"Updates the pending 'owner' of the '_profileId' passed in Requirements: Only the 'Profile' owner can update the pending owner","params":{"_pendingOwner":"The new pending 'owner' value","_profileId":"The 'profileId' to update the pending owner for"}}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":"IRegistry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","id":2803,"exportedSymbols":{"IRegistry":[2802],"Metadata":[3098]},"nodeType":"SourceUnit","src":"32:12410:4","nodes":[{"id":2612,"nodeType":"PragmaDirective","src":"32:24:4","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":2614,"nodeType":"ImportDirective","src":"80:51:4","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":2803,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":2613,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"88:8:4","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":2802,"nodeType":"ContractDefinition","src":"5055:7386:4","nodes":[{"id":2629,"nodeType":"StructDefinition","src":"5240:160:4","nodes":[],"canonicalName":"IRegistry.Profile","members":[{"constant":false,"id":2617,"mutability":"mutable","name":"id","nameLocation":"5273:2:4","nodeType":"VariableDeclaration","scope":2629,"src":"5265:10:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2616,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5265:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2619,"mutability":"mutable","name":"nonce","nameLocation":"5293:5:4","nodeType":"VariableDeclaration","scope":2629,"src":"5285:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2618,"name":"uint256","nodeType":"ElementaryTypeName","src":"5285:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2621,"mutability":"mutable","name":"name","nameLocation":"5315:4:4","nodeType":"VariableDeclaration","scope":2629,"src":"5308:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":2620,"name":"string","nodeType":"ElementaryTypeName","src":"5308:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2624,"mutability":"mutable","name":"metadata","nameLocation":"5338:8:4","nodeType":"VariableDeclaration","scope":2629,"src":"5329:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":2623,"nodeType":"UserDefinedTypeName","pathNode":{"id":2622,"name":"Metadata","nameLocations":["5329:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"5329:8:4"},"referencedDeclaration":3098,"src":"5329:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":2626,"mutability":"mutable","name":"owner","nameLocation":"5364:5:4","nodeType":"VariableDeclaration","scope":2629,"src":"5356:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2625,"name":"address","nodeType":"ElementaryTypeName","src":"5356:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2628,"mutability":"mutable","name":"anchor","nameLocation":"5387:6:4","nodeType":"VariableDeclaration","scope":2629,"src":"5379:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2627,"name":"address","nodeType":"ElementaryTypeName","src":"5379:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Profile","nameLocation":"5247:7:4","scope":2802,"visibility":"public"},{"id":2645,"nodeType":"EventDefinition","src":"5586:140:4","nodes":[],"anonymous":false,"documentation":{"id":2630,"nodeType":"StructuredDocumentation","src":"5500:81:4","text":"@dev Emitted when a profile is created. This will return your anchor address."},"eventSelector":"1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b80609","name":"ProfileCreated","nameLocation":"5592:14:4","parameters":{"id":2644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2632,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"5632:9:4","nodeType":"VariableDeclaration","scope":2645,"src":"5616:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2631,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5616:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2634,"indexed":false,"mutability":"mutable","name":"nonce","nameLocation":"5651:5:4","nodeType":"VariableDeclaration","scope":2645,"src":"5643:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2633,"name":"uint256","nodeType":"ElementaryTypeName","src":"5643:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2636,"indexed":false,"mutability":"mutable","name":"name","nameLocation":"5665:4:4","nodeType":"VariableDeclaration","scope":2645,"src":"5658:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2635,"name":"string","nodeType":"ElementaryTypeName","src":"5658:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2639,"indexed":false,"mutability":"mutable","name":"metadata","nameLocation":"5680:8:4","nodeType":"VariableDeclaration","scope":2645,"src":"5671:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2638,"nodeType":"UserDefinedTypeName","pathNode":{"id":2637,"name":"Metadata","nameLocations":["5671:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"5671:8:4"},"referencedDeclaration":3098,"src":"5671:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":2641,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"5698:5:4","nodeType":"VariableDeclaration","scope":2645,"src":"5690:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2640,"name":"address","nodeType":"ElementaryTypeName","src":"5690:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2643,"indexed":false,"mutability":"mutable","name":"anchor","nameLocation":"5713:6:4","nodeType":"VariableDeclaration","scope":2645,"src":"5705:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2642,"name":"address","nodeType":"ElementaryTypeName","src":"5705:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5606:119:4"}},{"id":2654,"nodeType":"EventDefinition","src":"5853:81:4","nodes":[],"anonymous":false,"documentation":{"id":2646,"nodeType":"StructuredDocumentation","src":"5732:116:4","text":"@dev Emitted when a profile name is updated. This will update the anchor when the name is updated and return it."},"eventSelector":"54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f","name":"ProfileNameUpdated","nameLocation":"5859:18:4","parameters":{"id":2653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2648,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"5894:9:4","nodeType":"VariableDeclaration","scope":2654,"src":"5878:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2647,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5878:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2650,"indexed":false,"mutability":"mutable","name":"name","nameLocation":"5912:4:4","nodeType":"VariableDeclaration","scope":2654,"src":"5905:11:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2649,"name":"string","nodeType":"ElementaryTypeName","src":"5905:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2652,"indexed":false,"mutability":"mutable","name":"anchor","nameLocation":"5926:6:4","nodeType":"VariableDeclaration","scope":2654,"src":"5918:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2651,"name":"address","nodeType":"ElementaryTypeName","src":"5918:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5877:56:4"}},{"id":2662,"nodeType":"EventDefinition","src":"5999:75:4","nodes":[],"anonymous":false,"documentation":{"id":2655,"nodeType":"StructuredDocumentation","src":"5940:54:4","text":"@dev Emitted when a profile's metadata is updated."},"eventSelector":"a366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3","name":"ProfileMetadataUpdated","nameLocation":"6005:22:4","parameters":{"id":2661,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2657,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"6044:9:4","nodeType":"VariableDeclaration","scope":2662,"src":"6028:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2656,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6028:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2660,"indexed":false,"mutability":"mutable","name":"metadata","nameLocation":"6064:8:4","nodeType":"VariableDeclaration","scope":2662,"src":"6055:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2659,"nodeType":"UserDefinedTypeName","pathNode":{"id":2658,"name":"Metadata","nameLocations":["6055:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6055:8:4"},"referencedDeclaration":3098,"src":"6055:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"6027:46:4"}},{"id":2669,"nodeType":"EventDefinition","src":"6134:68:4","nodes":[],"anonymous":false,"documentation":{"id":2663,"nodeType":"StructuredDocumentation","src":"6080:49:4","text":"@dev Emitted when a profile owner is updated."},"eventSelector":"fd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d","name":"ProfileOwnerUpdated","nameLocation":"6140:19:4","parameters":{"id":2668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2665,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"6176:9:4","nodeType":"VariableDeclaration","scope":2669,"src":"6160:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2664,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6160:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2667,"indexed":false,"mutability":"mutable","name":"owner","nameLocation":"6195:5:4","nodeType":"VariableDeclaration","scope":2669,"src":"6187:13:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2666,"name":"address","nodeType":"ElementaryTypeName","src":"6187:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6159:42:4"}},{"id":2676,"nodeType":"EventDefinition","src":"6270:82:4","nodes":[],"anonymous":false,"documentation":{"id":2670,"nodeType":"StructuredDocumentation","src":"6208:57:4","text":"@dev Emitted when a profile pending owner is updated."},"eventSelector":"21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8","name":"ProfilePendingOwnerUpdated","nameLocation":"6276:26:4","parameters":{"id":2675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2672,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"6319:9:4","nodeType":"VariableDeclaration","scope":2676,"src":"6303:25:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2671,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6303:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2674,"indexed":false,"mutability":"mutable","name":"pendingOwner","nameLocation":"6338:12:4","nodeType":"VariableDeclaration","scope":2676,"src":"6330:20:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2673,"name":"address","nodeType":"ElementaryTypeName","src":"6330:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6302:49:4"}},{"id":2685,"nodeType":"FunctionDefinition","src":"6658:91:4","nodes":[],"documentation":{"id":2677,"nodeType":"StructuredDocumentation","src":"6461:192:4","text":"@dev Returns the 'Profile' for a '_profileId' passed\n @param _profileId The 'profileId' to return the 'Profile' for\n @return profile The 'Profile' for the '_profileId' passed"},"functionSelector":"0114cf0a","implemented":false,"kind":"function","modifiers":[],"name":"getProfileById","nameLocation":"6667:14:4","parameters":{"id":2680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2679,"mutability":"mutable","name":"_profileId","nameLocation":"6690:10:4","nodeType":"VariableDeclaration","scope":2685,"src":"6682:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2678,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6682:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6681:20:4"},"returnParameters":{"id":2684,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2683,"mutability":"mutable","name":"profile","nameLocation":"6740:7:4","nodeType":"VariableDeclaration","scope":2685,"src":"6725:22:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":2682,"nodeType":"UserDefinedTypeName","pathNode":{"id":2681,"name":"Profile","nameLocations":["6725:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"6725:7:4"},"referencedDeclaration":2629,"src":"6725:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"6724:24:4"},"scope":2802,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2694,"nodeType":"FunctionDefinition","src":"6941:92:4","nodes":[],"documentation":{"id":2686,"nodeType":"StructuredDocumentation","src":"6755:181:4","text":"@dev Returns the 'Profile' for an '_anchor' passed\n @param _anchor The 'anchor' to return the 'Profile' for\n @return profile The 'Profile' for the '_anchor' passed"},"functionSelector":"dd93da43","implemented":false,"kind":"function","modifiers":[],"name":"getProfileByAnchor","nameLocation":"6950:18:4","parameters":{"id":2689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2688,"mutability":"mutable","name":"_anchor","nameLocation":"6977:7:4","nodeType":"VariableDeclaration","scope":2694,"src":"6969:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2687,"name":"address","nodeType":"ElementaryTypeName","src":"6969:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6968:17:4"},"returnParameters":{"id":2693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2692,"mutability":"mutable","name":"profile","nameLocation":"7024:7:4","nodeType":"VariableDeclaration","scope":2694,"src":"7009:22:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":2691,"nodeType":"UserDefinedTypeName","pathNode":{"id":2690,"name":"Profile","nameLocations":["7009:7:4"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7009:7:4"},"referencedDeclaration":2629,"src":"7009:7:4","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7008:24:4"},"scope":2802,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2704,"nodeType":"FunctionDefinition","src":"7459:150:4","nodes":[],"documentation":{"id":2695,"nodeType":"StructuredDocumentation","src":"7039:415:4","text":"@dev Returns a boolean if the '_account' is a member or owner of the '_profileId' passed in\n @param _profileId The 'profileId' to check if the '_account' is a member or owner of\n @param _account The 'account' to check if they are a member or owner of the '_profileId' passed in\n @return isOwnerOrMemberOfProfile A boolean if the '_account' is a member or owner of the '_profileId' passed in"},"functionSelector":"5e8a7915","implemented":false,"kind":"function","modifiers":[],"name":"isOwnerOrMemberOfProfile","nameLocation":"7468:24:4","parameters":{"id":2700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2697,"mutability":"mutable","name":"_profileId","nameLocation":"7501:10:4","nodeType":"VariableDeclaration","scope":2704,"src":"7493:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2696,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7493:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2699,"mutability":"mutable","name":"_account","nameLocation":"7521:8:4","nodeType":"VariableDeclaration","scope":2704,"src":"7513:16:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2698,"name":"address","nodeType":"ElementaryTypeName","src":"7513:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7492:38:4"},"returnParameters":{"id":2703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2702,"mutability":"mutable","name":"isOwnerOrMemberOfProfile","nameLocation":"7583:24:4","nodeType":"VariableDeclaration","scope":2704,"src":"7578:29:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2701,"name":"bool","nodeType":"ElementaryTypeName","src":"7578:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7577:31:4"},"scope":2802,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2714,"nodeType":"FunctionDefinition","src":"7987:108:4","nodes":[],"documentation":{"id":2705,"nodeType":"StructuredDocumentation","src":"7615:367:4","text":"@dev Returns a boolean if the '_account' is an owner of the '_profileId' passed in\n @param _profileId The 'profileId' to check if the '_account' is an owner of\n @param _owner The 'owner' to check if they are an owner of the '_profileId' passed in\n @return isOwnerOfProfile A boolean if the '_account' is an owner of the '_profileId' passed in"},"functionSelector":"39b86b8c","implemented":false,"kind":"function","modifiers":[],"name":"isOwnerOfProfile","nameLocation":"7996:16:4","parameters":{"id":2710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2707,"mutability":"mutable","name":"_profileId","nameLocation":"8021:10:4","nodeType":"VariableDeclaration","scope":2714,"src":"8013:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2706,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8013:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2709,"mutability":"mutable","name":"_owner","nameLocation":"8041:6:4","nodeType":"VariableDeclaration","scope":2714,"src":"8033:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2708,"name":"address","nodeType":"ElementaryTypeName","src":"8033:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8012:36:4"},"returnParameters":{"id":2713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2712,"mutability":"mutable","name":"isOwnerOfProfile","nameLocation":"8077:16:4","nodeType":"VariableDeclaration","scope":2714,"src":"8072:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2711,"name":"bool","nodeType":"ElementaryTypeName","src":"8072:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8071:23:4"},"scope":2802,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2724,"nodeType":"FunctionDefinition","src":"8476:111:4","nodes":[],"documentation":{"id":2715,"nodeType":"StructuredDocumentation","src":"8101:370:4","text":"@dev Returns a boolean if the '_account' is a member of the '_profileId' passed in\n @param _profileId The 'profileId' to check if the '_account' is a member of\n @param _member The 'member' to check if they are a member of the '_profileId' passed in\n @return isMemberOfProfile A boolean if the '_account' is a member of the '_profileId' passed in"},"functionSelector":"0ec1fbac","implemented":false,"kind":"function","modifiers":[],"name":"isMemberOfProfile","nameLocation":"8485:17:4","parameters":{"id":2720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2717,"mutability":"mutable","name":"_profileId","nameLocation":"8511:10:4","nodeType":"VariableDeclaration","scope":2724,"src":"8503:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2716,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8503:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2719,"mutability":"mutable","name":"_member","nameLocation":"8531:7:4","nodeType":"VariableDeclaration","scope":2724,"src":"8523:15:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2718,"name":"address","nodeType":"ElementaryTypeName","src":"8523:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8502:37:4"},"returnParameters":{"id":2723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2722,"mutability":"mutable","name":"isMemberOfProfile","nameLocation":"8568:17:4","nodeType":"VariableDeclaration","scope":2724,"src":"8563:22:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2721,"name":"bool","nodeType":"ElementaryTypeName","src":"8563:4:4","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"8562:24:4"},"scope":2802,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":2742,"nodeType":"FunctionDefinition","src":"9411:213:4","nodes":[],"documentation":{"id":2725,"nodeType":"StructuredDocumentation","src":"8729:677:4","text":"@dev Creates a new 'Profile' and returns the 'profileId' of the new profile\n Note: The 'name' and 'nonce' are used to generate the 'anchor' address\n Requirements: None, anyone can create a new profile\n @param _nonce The nonce to use to generate the 'anchor' address\n @param _name The name to use to generate the 'anchor' address\n @param _metadata The 'Metadata' to use to generate the 'anchor' address\n @param _owner The 'owner' to use to generate the 'anchor' address\n @param _members The 'members' to use to generate the 'anchor' address\n @return profileId The 'profileId' of the new profile"},"functionSelector":"3a92f65f","implemented":false,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"9420:13:4","parameters":{"id":2738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2727,"mutability":"mutable","name":"_nonce","nameLocation":"9451:6:4","nodeType":"VariableDeclaration","scope":2742,"src":"9443:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2726,"name":"uint256","nodeType":"ElementaryTypeName","src":"9443:7:4","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2729,"mutability":"mutable","name":"_name","nameLocation":"9481:5:4","nodeType":"VariableDeclaration","scope":2742,"src":"9467:19:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2728,"name":"string","nodeType":"ElementaryTypeName","src":"9467:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":2732,"mutability":"mutable","name":"_metadata","nameLocation":"9512:9:4","nodeType":"VariableDeclaration","scope":2742,"src":"9496:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2731,"nodeType":"UserDefinedTypeName","pathNode":{"id":2730,"name":"Metadata","nameLocations":["9496:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9496:8:4"},"referencedDeclaration":3098,"src":"9496:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":2734,"mutability":"mutable","name":"_owner","nameLocation":"9539:6:4","nodeType":"VariableDeclaration","scope":2742,"src":"9531:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2733,"name":"address","nodeType":"ElementaryTypeName","src":"9531:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2737,"mutability":"mutable","name":"_members","nameLocation":"9572:8:4","nodeType":"VariableDeclaration","scope":2742,"src":"9555:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2735,"name":"address","nodeType":"ElementaryTypeName","src":"9555:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2736,"nodeType":"ArrayTypeName","src":"9555:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"9433:153:4"},"returnParameters":{"id":2741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2740,"mutability":"mutable","name":"profileId","nameLocation":"9613:9:4","nodeType":"VariableDeclaration","scope":2742,"src":"9605:17:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2739,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9605:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"9604:19:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2752,"nodeType":"FunctionDefinition","src":"10260:102:4","nodes":[],"documentation":{"id":2743,"nodeType":"StructuredDocumentation","src":"9630:625:4","text":"@dev Updates the 'name' of the '_profileId' passed in and returns the new 'anchor' address\n Requirements: Only the 'Profile' owner can update the name\n Note: The 'name' and 'nonce' are used to generate the 'anchor' address and this will update the 'anchor'\n so please use caution. You can always recreate your 'anchor' address by updating the name back\n to the original name used to create the profile.\n @param _profileId The 'profileId' to update the name for\n @param _name The new 'name' value\n @return anchor The new 'anchor' address"},"functionSelector":"cf189ff2","implemented":false,"kind":"function","modifiers":[],"name":"updateProfileName","nameLocation":"10269:17:4","parameters":{"id":2748,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2745,"mutability":"mutable","name":"_profileId","nameLocation":"10295:10:4","nodeType":"VariableDeclaration","scope":2752,"src":"10287:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2744,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10287:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2747,"mutability":"mutable","name":"_name","nameLocation":"10321:5:4","nodeType":"VariableDeclaration","scope":2752,"src":"10307:19:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2746,"name":"string","nodeType":"ElementaryTypeName","src":"10307:6:4","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"10286:41:4"},"returnParameters":{"id":2751,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2750,"mutability":"mutable","name":"anchor","nameLocation":"10354:6:4","nodeType":"VariableDeclaration","scope":2752,"src":"10346:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2749,"name":"address","nodeType":"ElementaryTypeName","src":"10346:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10345:16:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2761,"nodeType":"FunctionDefinition","src":"10640:87:4","nodes":[],"documentation":{"id":2753,"nodeType":"StructuredDocumentation","src":"10368:267:4","text":"@dev Updates the 'Metadata' of the '_profileId' passed in\n Requirements: Only the 'Profile' owner can update the metadata\n @param _profileId The 'profileId' to update the metadata for\n @param _metadata The new 'Metadata' value"},"functionSelector":"ac402839","implemented":false,"kind":"function","modifiers":[],"name":"updateProfileMetadata","nameLocation":"10649:21:4","parameters":{"id":2759,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2755,"mutability":"mutable","name":"_profileId","nameLocation":"10679:10:4","nodeType":"VariableDeclaration","scope":2761,"src":"10671:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10671:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2758,"mutability":"mutable","name":"_metadata","nameLocation":"10707:9:4","nodeType":"VariableDeclaration","scope":2761,"src":"10691:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":2757,"nodeType":"UserDefinedTypeName","pathNode":{"id":2756,"name":"Metadata","nameLocations":["10691:8:4"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10691:8:4"},"referencedDeclaration":3098,"src":"10691:8:4","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10670:47:4"},"returnParameters":{"id":2760,"nodeType":"ParameterList","parameters":[],"src":"10726:0:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2769,"nodeType":"FunctionDefinition","src":"11029:87:4","nodes":[],"documentation":{"id":2762,"nodeType":"StructuredDocumentation","src":"10733:291:4","text":"@dev Updates the pending 'owner' of the '_profileId' passed in\n Requirements: Only the 'Profile' owner can update the pending owner\n @param _profileId The 'profileId' to update the pending owner for\n @param _pendingOwner The new pending 'owner' value"},"functionSelector":"3b66dacd","implemented":false,"kind":"function","modifiers":[],"name":"updateProfilePendingOwner","nameLocation":"11038:25:4","parameters":{"id":2767,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2764,"mutability":"mutable","name":"_profileId","nameLocation":"11072:10:4","nodeType":"VariableDeclaration","scope":2769,"src":"11064:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2763,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11064:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2766,"mutability":"mutable","name":"_pendingOwner","nameLocation":"11092:13:4","nodeType":"VariableDeclaration","scope":2769,"src":"11084:21:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2765,"name":"address","nodeType":"ElementaryTypeName","src":"11084:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11063:43:4"},"returnParameters":{"id":2768,"nodeType":"ParameterList","parameters":[],"src":"11115:0:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2775,"nodeType":"FunctionDefinition","src":"11349:61:4","nodes":[],"documentation":{"id":2770,"nodeType":"StructuredDocumentation","src":"11122:222:4","text":"@dev Accepts the pending 'owner' of the '_profileId' passed in\n Requirements: Only the pending owner can accept the ownership\n @param _profileId The 'profileId' to accept the ownership for"},"functionSelector":"2497f3c6","implemented":false,"kind":"function","modifiers":[],"name":"acceptProfileOwnership","nameLocation":"11358:22:4","parameters":{"id":2773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2772,"mutability":"mutable","name":"_profileId","nameLocation":"11389:10:4","nodeType":"VariableDeclaration","scope":2775,"src":"11381:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2771,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11381:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"11380:20:4"},"returnParameters":{"id":2774,"nodeType":"ParameterList","parameters":[],"src":"11409:0:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2784,"nodeType":"FunctionDefinition","src":"11684:76:4","nodes":[],"documentation":{"id":2776,"nodeType":"StructuredDocumentation","src":"11416:263:4","text":"@dev Adds members to the '_profileId' passed in\n Requirements: Only the 'Profile' owner can add members\n @param _profileId The 'profileId' to add members to\n @param _members The members to add to the '_profileId' passed in"},"functionSelector":"5063f361","implemented":false,"kind":"function","modifiers":[],"name":"addMembers","nameLocation":"11693:10:4","parameters":{"id":2782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2778,"mutability":"mutable","name":"_profileId","nameLocation":"11712:10:4","nodeType":"VariableDeclaration","scope":2784,"src":"11704:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2777,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11704:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2781,"mutability":"mutable","name":"_members","nameLocation":"11741:8:4","nodeType":"VariableDeclaration","scope":2784,"src":"11724:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2779,"name":"address","nodeType":"ElementaryTypeName","src":"11724:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2780,"nodeType":"ArrayTypeName","src":"11724:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11703:47:4"},"returnParameters":{"id":2783,"nodeType":"ParameterList","parameters":[],"src":"11759:0:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2793,"nodeType":"FunctionDefinition","src":"12052:79:4","nodes":[],"documentation":{"id":2785,"nodeType":"StructuredDocumentation","src":"11766:281:4","text":"@dev Removes members from the '_profileId' passed in\n Requirements: Only the 'Profile' owner can remove members\n @param _profileId The 'profileId' to remove members from\n @param _members The members to remove from the '_profileId' passed in"},"functionSelector":"e0cf1e4c","implemented":false,"kind":"function","modifiers":[],"name":"removeMembers","nameLocation":"12061:13:4","parameters":{"id":2791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2787,"mutability":"mutable","name":"_profileId","nameLocation":"12083:10:4","nodeType":"VariableDeclaration","scope":2793,"src":"12075:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2786,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12075:7:4","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2790,"mutability":"mutable","name":"_members","nameLocation":"12112:8:4","nodeType":"VariableDeclaration","scope":2793,"src":"12095:25:4","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2788,"name":"address","nodeType":"ElementaryTypeName","src":"12095:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2789,"nodeType":"ArrayTypeName","src":"12095:9:4","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"12074:47:4"},"returnParameters":{"id":2792,"nodeType":"ParameterList","parameters":[],"src":"12130:0:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2801,"nodeType":"FunctionDefinition","src":"12372:67:4","nodes":[],"documentation":{"id":2794,"nodeType":"StructuredDocumentation","src":"12137:230:4","text":"@dev Recovers funds from the contract\n Requirements: Must be the Allo owner\n @param _token The token you want to use to recover funds\n @param _recipient The recipient of the recovered funds"},"functionSelector":"24ae6a27","implemented":false,"kind":"function","modifiers":[],"name":"recoverFunds","nameLocation":"12381:12:4","parameters":{"id":2799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2796,"mutability":"mutable","name":"_token","nameLocation":"12402:6:4","nodeType":"VariableDeclaration","scope":2801,"src":"12394:14:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2795,"name":"address","nodeType":"ElementaryTypeName","src":"12394:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2798,"mutability":"mutable","name":"_recipient","nameLocation":"12418:10:4","nodeType":"VariableDeclaration","scope":2801,"src":"12410:18:4","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2797,"name":"address","nodeType":"ElementaryTypeName","src":"12410:7:4","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12393:36:4"},"returnParameters":{"id":2800,"nodeType":"ParameterList","parameters":[],"src":"12438:0:4"},"scope":2802,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IRegistry","contractDependencies":[],"contractKind":"interface","documentation":{"id":2615,"nodeType":"StructuredDocumentation","src":"4124:931:4","text":"@title IRegistry Interface\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice Interface for the Registry contract and exposes all functions needed to use the Registry\n within the Allo protocol.\n @dev The Registry Interface is used to interact with the Allo protocol and create profiles\n that can be used to interact with the Allo protocol. The Registry is the main contract\n that all other contracts interact with to get the 'Profile' information needed to\n interact with the Allo protocol. The Registry is also used to create new profiles\n and update existing profiles. The Registry is also used to add and remove members\n from a profile. The Registry will not always be used in a strategy and will depend on\n the strategy being used."},"fullyImplemented":false,"linearizedBaseContracts":[2802],"name":"IRegistry","nameLocation":"5065:9:4","scope":2803,"usedErrors":[]}],"license":"MIT"},"id":4} \ No newline at end of file diff --git a/pkg/contracts/out/ISafe.sol/ISafe.json b/pkg/contracts/out/ISafe.sol/ISafe.json index 150fb143d..308be7d79 100644 --- a/pkg/contracts/out/ISafe.sol/ISafe.json +++ b/pkg/contracts/out/ISafe.sol/ISafe.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getOwners()":"a0e67e2b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/ISafe.sol\":\"ISafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/ISafe.sol":"ISafe"},"evmVersion":"paris","libraries":{}},"sources":{"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"id":110} \ No newline at end of file +{"abi":[{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getOwners()":"a0e67e2b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/ISafe.sol\":\"ISafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/ISafe.sol":"ISafe"},"evmVersion":"paris","libraries":{}},"sources":{"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/ISafe.sol","id":75800,"exportedSymbols":{"ISafe":[75799]},"nodeType":"SourceUnit","src":"42:113:128","nodes":[{"id":75792,"nodeType":"PragmaDirective","src":"42:24:128","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75799,"nodeType":"ContractDefinition","src":"68:86:128","nodes":[{"id":75798,"nodeType":"FunctionDefinition","src":"90:62:128","nodes":[],"functionSelector":"a0e67e2b","implemented":false,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"99:9:128","parameters":{"id":75793,"nodeType":"ParameterList","parameters":[],"src":"108:2:128"},"returnParameters":{"id":75797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75796,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75798,"src":"134:16:128","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75794,"name":"address","nodeType":"ElementaryTypeName","src":"134:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75795,"nodeType":"ArrayTypeName","src":"134:9:128","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"133:18:128"},"scope":75799,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISafe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[75799],"name":"ISafe","nameLocation":"78:5:128","scope":75800,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":128} \ No newline at end of file diff --git a/pkg/contracts/out/MockERC20.sol/MockERC20.json b/pkg/contracts/out/MockERC20.sol/MockERC20.json index cf5a2a5aa..b4558daca 100644 --- a/pkg/contracts/out/MockERC20.sol/MockERC20.json +++ b/pkg/contracts/out/MockERC20.sol/MockERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060408051808201909152600a81526926b7b1b5902a37b5b2b760b11b602082015260009062000042908262000125565b506040805180820190915260038152624d544b60e81b60208201526001906200006c908262000125565b506002805460ff19166012179055620001f1565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000ab57607f821691505b602082108103620000cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012057600081815260208120601f850160051c81016020861015620000fb5750805b601f850160051c820191505b818110156200011c5782815560010162000107565b5050505b505050565b81516001600160401b0381111562000141576200014162000080565b620001598162000152845462000096565b84620000d2565b602080601f831160018114620001915760008415620001785750858301515b600019600386901b1c1916600185901b1785556200011c565b600085815260208120601f198616915b82811015620001c257888601518255948401946001909101908401620001a1565b5085821015620001e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620002016000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220be7aadc691aedd577e01a3fca93edf030758d8399ae09cd301824a447ec7329064736f6c63430008130033","sourceMap":"290:2027:48:-:0;;;411:100;;;;;;;;;-1:-1:-1;435:20:48;;;;;;;;;;;;-1:-1:-1;;;435:20:48;;;;-1:-1:-1;;435:20:48;;-1:-1:-1;435:20:48;:::i;:::-;-1:-1:-1;465:15:48;;;;;;;;;;;;-1:-1:-1;;;465:15:48;;;;:7;;:15;;:7;:15;:::i;:::-;-1:-1:-1;490:9:48;:14;;-1:-1:-1;;490:14:48;502:2;490:14;;;290:2027;;14:127:122;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:122;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:122;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:122;;;2580:26;2531:89;-1:-1:-1;;1335:1:122;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:122;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:122;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:122;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:122:o;:::-;290:2027:48;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220be7aadc691aedd577e01a3fca93edf030758d8399ae09cd301824a447ec7329064736f6c63430008130033","sourceMap":"290:2027:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:43;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:122;;1185:22;1167:41;;1155:2;1140:18;5995:573:43;1027:187:122;4847:195:43;5007:18;5001:25;4847:195;;;1365:25:122;;;1353:2;1338:18;4847:195:43;1219:177:122;1545:189:48;;;;;;:::i;:::-;;:::i;729:98::-;811:9;;729:98;;811:9;;;;1876:36:122;;1864:2;1849:18;729:98:48;1734:184:122;17096:1062:43;;;:::i;1740:184:48:-;;;;;;:::i;:::-;;:::i;833:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:43;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;621:102:48;;;:::i;941:106::-;;;;;;:::i;:::-;;:::i;1930:184::-;;;;;;:::i;:::-;;:::i;1391:148::-;;;;;;:::i;:::-;;:::i;1210:175::-;;;;;;:::i;:::-;;:::i;14027:3010:43:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1053:151:48;;;;;;:::i;:::-;;:::i;517:98::-;571:13;603:5;596:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:98;:::o;5995:573:43:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:43;5995:573;;;;:::o;1545:189:48:-;1642:4;1665:62;1684:17;1696:4;1684:11;:17::i;:::-;1703:15;1715:2;1703:11;:15::i;:::-;1720:6;1665:18;:62::i;:::-;1658:69;1545:189;-1:-1:-1;;;;1545:189:48:o;17096:1062:43:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:43;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1740:184:48:-;1837:4;1860:57;1884:20;1896:7;1884:11;:20::i;:::-;1906:10;1860:23;:57::i;:::-;1853:64;1740:184;-1:-1:-1;;;1740:184:48:o;833:102::-;899:29;905:15;917:2;905:11;:15::i;:::-;922:5;899;:29::i;:::-;833:102;;:::o;621:::-;677:13;709:7;702:14;;;;;:::i;941:106::-;1009:31;1015:17;1027:4;1015:11;:17::i;:::-;1034:5;1009;:31::i;1930:184::-;2027:4;2050:57;2074:20;2086:7;2074:11;:20::i;:::-;2096:10;2050:23;:57::i;1391:148::-;1470:4;1493:39;1508:15;1520:2;1508:11;:15::i;:::-;1525:6;1493:14;:39::i;1210:175::-;1313:65;1329:18;1341:5;1329:11;:18::i;:::-;1349:20;1361:7;1349:11;:20::i;:::-;1371:6;1313:15;:65::i;:::-;1210:175;;;:::o;14027:3010:43:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:43;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:43;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:43:o;1053:151:48:-;1144:53;1154:17;1166:4;1154:11;:17::i;:::-;1173:15;1185:2;1173:11;:15::i;:::-;1190:6;1144:9;:53::i;2120:195::-;2175:14;2292:5;2287:3;2283:15;2280:1;2277:22;2267:32;;2120:195;;;:::o;10886:2203:43:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:43;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:43;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;833:102:48;;:::o;20140:1119:43:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:43;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:43;833:102:48;;:::o;7890:1035:43:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:43;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:43;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1210:175:48;;;:::o;14:548:122:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:122:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:122;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:122;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:122:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/utils/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/test/utils/MockERC20.sol\":{\"keccak256\":\"0xb389347214a50a7d4dd26ce3dcd327a4bae2c6cc490727460d4b8b8740cff3fa\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d3123d579b4916e8f95e5bad46904ad40b0e74f22a4227f85ef2d31b261280c8\",\"dweb:/ipfs/Qmb7qwzQgg6amzHtoDLwEUTBitbcqQeR3WtgRmRixXzwxQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/utils/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/test/utils/MockERC20.sol":{"keccak256":"0xb389347214a50a7d4dd26ce3dcd327a4bae2c6cc490727460d4b8b8740cff3fa","urls":["bzz-raw://d3123d579b4916e8f95e5bad46904ad40b0e74f22a4227f85ef2d31b261280c8","dweb:/ipfs/Qmb7qwzQgg6amzHtoDLwEUTBitbcqQeR3WtgRmRixXzwxQ"],"license":"AGPL-3.0-only"}},"version":1},"id":48} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060408051808201909152600a81526926b7b1b5902a37b5b2b760b11b602082015260009062000042908262000125565b506040805180820190915260038152624d544b60e81b60208201526001906200006c908262000125565b506002805460ff19166012179055620001f1565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000ab57607f821691505b602082108103620000cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012057600081815260208120601f850160051c81016020861015620000fb5750805b601f850160051c820191505b818110156200011c5782815560010162000107565b5050505b505050565b81516001600160401b0381111562000141576200014162000080565b620001598162000152845462000096565b84620000d2565b602080601f831160018114620001915760008415620001785750858301515b600019600386901b1c1916600185901b1785556200011c565b600085815260208120601f198616915b82811015620001c257888601518255948401946001909101908401620001a1565b5085821015620001e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620002016000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220a9b59df20ff533a8668d1dfa50df305c03dd697a1e0d616e222936bf7fa442d864736f6c63430008130033","sourceMap":"290:2027:18:-:0;;;411:100;;;;;;;;;-1:-1:-1;435:20:18;;;;;;;;;;;;-1:-1:-1;;;435:20:18;;;;-1:-1:-1;;435:20:18;;-1:-1:-1;435:20:18;:::i;:::-;-1:-1:-1;465:15:18;;;;;;;;;;;;-1:-1:-1;;;465:15:18;;;;:7;;:15;;:7;:15;:::i;:::-;-1:-1:-1;490:9:18;:14;;-1:-1:-1;;490:14:18;502:2;490:14;;;290:2027;;14:127:144;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:144;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:144;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:144;;;2580:26;2531:89;-1:-1:-1;;1335:1:144;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:144;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:144;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:144;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:144:o;:::-;290:2027:18;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220a9b59df20ff533a8668d1dfa50df305c03dd697a1e0d616e222936bf7fa442d864736f6c63430008130033","sourceMap":"290:2027:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:144;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:144;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:144;;;1353:2;1338:18;4847:195:13;1219:177:144;1545:189:18;;;;;;:::i;:::-;;:::i;729:98::-;811:9;;729:98;;811:9;;;;1876:36:144;;1864:2;1849:18;729:98:18;1734:184:144;17096:1062:13;;;:::i;1740:184:18:-;;;;;;:::i;:::-;;:::i;833:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;621:102:18;;;:::i;941:106::-;;;;;;:::i;:::-;;:::i;1930:184::-;;;;;;:::i;:::-;;:::i;1391:148::-;;;;;;:::i;:::-;;:::i;1210:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1053:151:18;;;;;;:::i;:::-;;:::i;517:98::-;571:13;603:5;596:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1545:189:18:-;1642:4;1665:62;1684:17;1696:4;1684:11;:17::i;:::-;1703:15;1715:2;1703:11;:15::i;:::-;1720:6;1665:18;:62::i;:::-;1658:69;1545:189;-1:-1:-1;;;;1545:189:18:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1740:184:18:-;1837:4;1860:57;1884:20;1896:7;1884:11;:20::i;:::-;1906:10;1860:23;:57::i;:::-;1853:64;1740:184;-1:-1:-1;;;1740:184:18:o;833:102::-;899:29;905:15;917:2;905:11;:15::i;:::-;922:5;899;:29::i;:::-;833:102;;:::o;621:::-;677:13;709:7;702:14;;;;;:::i;941:106::-;1009:31;1015:17;1027:4;1015:11;:17::i;:::-;1034:5;1009;:31::i;1930:184::-;2027:4;2050:57;2074:20;2086:7;2074:11;:20::i;:::-;2096:10;2050:23;:57::i;1391:148::-;1470:4;1493:39;1508:15;1520:2;1508:11;:15::i;:::-;1525:6;1493:14;:39::i;1210:175::-;1313:65;1329:18;1341:5;1329:11;:18::i;:::-;1349:20;1361:7;1349:11;:20::i;:::-;1371:6;1313:15;:65::i;:::-;1210:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1053:151:18:-;1144:53;1154:17;1166:4;1154:11;:17::i;:::-;1173:15;1185:2;1173:11;:15::i;:::-;1190:6;1144:9;:53::i;2120:195::-;2175:14;2292:5;2287:3;2283:15;2280:1;2277:22;2267:32;;2120:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;833:102:18;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;833:102:18;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1210:175:18;;;:::o;14:548:144:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:144:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:144;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:144;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:144:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/utils/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/test/utils/MockERC20.sol\":{\"keccak256\":\"0xb389347214a50a7d4dd26ce3dcd327a4bae2c6cc490727460d4b8b8740cff3fa\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d3123d579b4916e8f95e5bad46904ad40b0e74f22a4227f85ef2d31b261280c8\",\"dweb:/ipfs/Qmb7qwzQgg6amzHtoDLwEUTBitbcqQeR3WtgRmRixXzwxQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/utils/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/test/utils/MockERC20.sol":{"keccak256":"0xb389347214a50a7d4dd26ce3dcd327a4bae2c6cc490727460d4b8b8740cff3fa","urls":["bzz-raw://d3123d579b4916e8f95e5bad46904ad40b0e74f22a4227f85ef2d31b261280c8","dweb:/ipfs/Qmb7qwzQgg6amzHtoDLwEUTBitbcqQeR3WtgRmRixXzwxQ"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":5305,"contract":"lib/allo-v2/test/utils/MockERC20.sol:MockERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":5307,"contract":"lib/allo-v2/test/utils/MockERC20.sol:MockERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":5309,"contract":"lib/allo-v2/test/utils/MockERC20.sol:MockERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/test/utils/MockERC20.sol","id":5514,"exportedSymbols":{"ERC20":[4491],"MockERC20":[5513]},"nodeType":"SourceUnit","src":"42:2276:18","nodes":[{"id":5298,"nodeType":"PragmaDirective","src":"42:24:18","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5300,"nodeType":"ImportDirective","src":"68:50:18","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":5514,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":5299,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:18","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5513,"nodeType":"ContractDefinition","src":"290:2027:18","nodes":[{"id":5305,"nodeType":"VariableDeclaration","src":"324:21:18","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"340:5:18","scope":5513,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5304,"name":"string","nodeType":"ElementaryTypeName","src":"324:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":5307,"nodeType":"VariableDeclaration","src":"351:23:18","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"367:7:18","scope":5513,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":5306,"name":"string","nodeType":"ElementaryTypeName","src":"351:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":5309,"nodeType":"VariableDeclaration","src":"380:24:18","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"395:9:18","scope":5513,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5308,"name":"uint8","nodeType":"ElementaryTypeName","src":"380:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":5325,"nodeType":"FunctionDefinition","src":"411:100:18","nodes":[],"body":{"id":5324,"nodeType":"Block","src":"425:86:18","nodes":[],"statements":[{"expression":{"id":5314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5312,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5305,"src":"435:5:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4d6f636b20546f6b656e","id":5313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"443:12:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_eb96b779e2a421c78f42d9b3999c8bc0c7726c66c63accdd9ba94f2ff1357844","typeString":"literal_string \"Mock Token\""},"value":"Mock Token"},"src":"435:20:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5315,"nodeType":"ExpressionStatement","src":"435:20:18"},{"expression":{"id":5318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5316,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"465:7:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"4d544b","id":5317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"475:5:18","typeDescriptions":{"typeIdentifier":"t_stringliteral_793539e36336d70961c91bdb898dff4b065dbb5ef5ac709025f5b68be91dd01e","typeString":"literal_string \"MTK\""},"value":"MTK"},"src":"465:15:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":5319,"nodeType":"ExpressionStatement","src":"465:15:18"},{"expression":{"id":5322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5320,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5309,"src":"490:9:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"3138","id":5321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"502:2:18","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"490:14:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":5323,"nodeType":"ExpressionStatement","src":"490:14:18"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5310,"nodeType":"ParameterList","parameters":[],"src":"422:2:18"},"returnParameters":{"id":5311,"nodeType":"ParameterList","parameters":[],"src":"425:0:18"},"scope":5513,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5334,"nodeType":"FunctionDefinition","src":"517:98:18","nodes":[],"body":{"id":5333,"nodeType":"Block","src":"586:29:18","nodes":[],"statements":[{"expression":{"id":5331,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5305,"src":"603:5:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5330,"id":5332,"nodeType":"Return","src":"596:12:18"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"526:4:18","overrides":{"id":5327,"nodeType":"OverrideSpecifier","overrides":[],"src":"553:8:18"},"parameters":{"id":5326,"nodeType":"ParameterList","parameters":[],"src":"530:2:18"},"returnParameters":{"id":5330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5334,"src":"571:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5328,"name":"string","nodeType":"ElementaryTypeName","src":"571:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"570:15:18"},"scope":5513,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5343,"nodeType":"FunctionDefinition","src":"621:102:18","nodes":[],"body":{"id":5342,"nodeType":"Block","src":"692:31:18","nodes":[],"statements":[{"expression":{"id":5340,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"709:7:18","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":5339,"id":5341,"nodeType":"Return","src":"702:14:18"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"630:6:18","overrides":{"id":5336,"nodeType":"OverrideSpecifier","overrides":[],"src":"659:8:18"},"parameters":{"id":5335,"nodeType":"ParameterList","parameters":[],"src":"636:2:18"},"returnParameters":{"id":5339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5343,"src":"677:13:18","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5337,"name":"string","nodeType":"ElementaryTypeName","src":"677:6:18","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"676:15:18"},"scope":5513,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5352,"nodeType":"FunctionDefinition","src":"729:98:18","nodes":[],"body":{"id":5351,"nodeType":"Block","src":"794:33:18","nodes":[],"statements":[{"expression":{"id":5349,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5309,"src":"811:9:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":5348,"id":5350,"nodeType":"Return","src":"804:16:18"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"738:8:18","overrides":{"id":5345,"nodeType":"OverrideSpecifier","overrides":[],"src":"769:8:18"},"parameters":{"id":5344,"nodeType":"ParameterList","parameters":[],"src":"746:2:18"},"returnParameters":{"id":5348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5352,"src":"787:5:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":5346,"name":"uint8","nodeType":"ElementaryTypeName","src":"787:5:18","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"786:7:18"},"scope":5513,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5367,"nodeType":"FunctionDefinition","src":"833:102:18","nodes":[],"body":{"id":5366,"nodeType":"Block","src":"889:46:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5361,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5354,"src":"917:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5360,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"905:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"905:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5363,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5356,"src":"922:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5359,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"899:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"899:29:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5365,"nodeType":"ExpressionStatement","src":"899:29:18"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"842:4:18","parameters":{"id":5357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5354,"mutability":"mutable","name":"to","nameLocation":"855:2:18","nodeType":"VariableDeclaration","scope":5367,"src":"847:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5353,"name":"address","nodeType":"ElementaryTypeName","src":"847:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5356,"mutability":"mutable","name":"value","nameLocation":"867:5:18","nodeType":"VariableDeclaration","scope":5367,"src":"859:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5355,"name":"uint256","nodeType":"ElementaryTypeName","src":"859:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"846:27:18"},"returnParameters":{"id":5358,"nodeType":"ParameterList","parameters":[],"src":"889:0:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5382,"nodeType":"FunctionDefinition","src":"941:106:18","nodes":[],"body":{"id":5381,"nodeType":"Block","src":"999:48:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5376,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5369,"src":"1027:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5375,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1015:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1015:17:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5378,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5371,"src":"1034:5:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5374,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1009:5:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1009:31:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5380,"nodeType":"ExpressionStatement","src":"1009:31:18"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"950:4:18","parameters":{"id":5372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5369,"mutability":"mutable","name":"from","nameLocation":"963:4:18","nodeType":"VariableDeclaration","scope":5382,"src":"955:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5368,"name":"address","nodeType":"ElementaryTypeName","src":"955:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5371,"mutability":"mutable","name":"value","nameLocation":"977:5:18","nodeType":"VariableDeclaration","scope":5382,"src":"969:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5370,"name":"uint256","nodeType":"ElementaryTypeName","src":"969:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"954:29:18"},"returnParameters":{"id":5373,"nodeType":"ParameterList","parameters":[],"src":"999:0:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5402,"nodeType":"FunctionDefinition","src":"1053:151:18","nodes":[],"body":{"id":5401,"nodeType":"Block","src":"1134:70:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5393,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5384,"src":"1166:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5392,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1154:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1154:17:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5396,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5386,"src":"1185:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5395,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1173:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1173:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5398,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5388,"src":"1190:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5391,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1144:9:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1144:53:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5400,"nodeType":"ExpressionStatement","src":"1144:53:18"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1062:14:18","parameters":{"id":5389,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5384,"mutability":"mutable","name":"from","nameLocation":"1085:4:18","nodeType":"VariableDeclaration","scope":5402,"src":"1077:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5383,"name":"address","nodeType":"ElementaryTypeName","src":"1077:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5386,"mutability":"mutable","name":"to","nameLocation":"1099:2:18","nodeType":"VariableDeclaration","scope":5402,"src":"1091:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5385,"name":"address","nodeType":"ElementaryTypeName","src":"1091:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5388,"mutability":"mutable","name":"amount","nameLocation":"1111:6:18","nodeType":"VariableDeclaration","scope":5402,"src":"1103:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5387,"name":"uint256","nodeType":"ElementaryTypeName","src":"1103:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1076:42:18"},"returnParameters":{"id":5390,"nodeType":"ParameterList","parameters":[],"src":"1134:0:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5422,"nodeType":"FunctionDefinition","src":"1210:175:18","nodes":[],"body":{"id":5421,"nodeType":"Block","src":"1303:82:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5413,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"1341:5:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5412,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1329:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5414,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1329:18:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5416,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5406,"src":"1361:7:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5415,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1349:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1349:20:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5418,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5408,"src":"1371:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5411,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1313:15:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1313:65:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5420,"nodeType":"ExpressionStatement","src":"1313:65:18"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1219:20:18","parameters":{"id":5409,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5404,"mutability":"mutable","name":"owner","nameLocation":"1248:5:18","nodeType":"VariableDeclaration","scope":5422,"src":"1240:13:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5403,"name":"address","nodeType":"ElementaryTypeName","src":"1240:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5406,"mutability":"mutable","name":"spender","nameLocation":"1263:7:18","nodeType":"VariableDeclaration","scope":5422,"src":"1255:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5405,"name":"address","nodeType":"ElementaryTypeName","src":"1255:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5408,"mutability":"mutable","name":"amount","nameLocation":"1280:6:18","nodeType":"VariableDeclaration","scope":5422,"src":"1272:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5407,"name":"uint256","nodeType":"ElementaryTypeName","src":"1272:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1239:48:18"},"returnParameters":{"id":5410,"nodeType":"ParameterList","parameters":[],"src":"1303:0:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5441,"nodeType":"FunctionDefinition","src":"1391:148:18","nodes":[],"body":{"id":5440,"nodeType":"Block","src":"1476:63:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5435,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5424,"src":"1520:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5434,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1508:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5436,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1508:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5437,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5426,"src":"1525:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5432,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1493:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockERC20_$5513_$","typeString":"type(contract super MockERC20)"}},"id":5433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1499:8:18","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1493:14:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":5438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1493:39:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5431,"id":5439,"nodeType":"Return","src":"1486:46:18"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1400:8:18","overrides":{"id":5428,"nodeType":"OverrideSpecifier","overrides":[],"src":"1452:8:18"},"parameters":{"id":5427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5424,"mutability":"mutable","name":"to","nameLocation":"1417:2:18","nodeType":"VariableDeclaration","scope":5441,"src":"1409:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5423,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5426,"mutability":"mutable","name":"amount","nameLocation":"1429:6:18","nodeType":"VariableDeclaration","scope":5441,"src":"1421:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5425,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1408:28:18"},"returnParameters":{"id":5431,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5430,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5441,"src":"1470:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5429,"name":"bool","nodeType":"ElementaryTypeName","src":"1470:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1469:6:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5465,"nodeType":"FunctionDefinition","src":"1545:189:18","nodes":[],"body":{"id":5464,"nodeType":"Block","src":"1648:86:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5456,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5443,"src":"1696:4:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5455,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1684:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1684:17:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":5459,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5445,"src":"1715:2:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5458,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1703:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1703:15:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5461,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5447,"src":"1720:6:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5453,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1665:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockERC20_$5513_$","typeString":"type(contract super MockERC20)"}},"id":5454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1671:12:18","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1665:18:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":5462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1665:62:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5452,"id":5463,"nodeType":"Return","src":"1658:69:18"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1554:12:18","overrides":{"id":5449,"nodeType":"OverrideSpecifier","overrides":[],"src":"1624:8:18"},"parameters":{"id":5448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5443,"mutability":"mutable","name":"from","nameLocation":"1575:4:18","nodeType":"VariableDeclaration","scope":5465,"src":"1567:12:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5442,"name":"address","nodeType":"ElementaryTypeName","src":"1567:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5445,"mutability":"mutable","name":"to","nameLocation":"1589:2:18","nodeType":"VariableDeclaration","scope":5465,"src":"1581:10:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5444,"name":"address","nodeType":"ElementaryTypeName","src":"1581:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5447,"mutability":"mutable","name":"amount","nameLocation":"1601:6:18","nodeType":"VariableDeclaration","scope":5465,"src":"1593:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5446,"name":"uint256","nodeType":"ElementaryTypeName","src":"1593:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1566:42:18"},"returnParameters":{"id":5452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5451,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5465,"src":"1642:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5450,"name":"bool","nodeType":"ElementaryTypeName","src":"1642:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1641:6:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5484,"nodeType":"FunctionDefinition","src":"1740:184:18","nodes":[],"body":{"id":5483,"nodeType":"Block","src":"1843:81:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5478,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"1896:7:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5477,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"1884:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1884:20:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5480,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5469,"src":"1906:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5475,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1860:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockERC20_$5513_$","typeString":"type(contract super MockERC20)"}},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1866:17:18","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1860:23:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":5481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1860:57:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5474,"id":5482,"nodeType":"Return","src":"1853:64:18"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1749:17:18","overrides":{"id":5471,"nodeType":"OverrideSpecifier","overrides":[],"src":"1819:8:18"},"parameters":{"id":5470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5467,"mutability":"mutable","name":"spender","nameLocation":"1775:7:18","nodeType":"VariableDeclaration","scope":5484,"src":"1767:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5466,"name":"address","nodeType":"ElementaryTypeName","src":"1767:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5469,"mutability":"mutable","name":"difference","nameLocation":"1792:10:18","nodeType":"VariableDeclaration","scope":5484,"src":"1784:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5468,"name":"uint256","nodeType":"ElementaryTypeName","src":"1784:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1766:37:18"},"returnParameters":{"id":5474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5484,"src":"1837:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5472,"name":"bool","nodeType":"ElementaryTypeName","src":"1837:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1836:6:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5503,"nodeType":"FunctionDefinition","src":"1930:184:18","nodes":[],"body":{"id":5502,"nodeType":"Block","src":"2033:81:18","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":5497,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5486,"src":"2086:7:18","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5496,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5512,"src":"2074:11:18","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":5498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2074:20:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5499,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5488,"src":"2096:10:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5494,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2050:5:18","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_MockERC20_$5513_$","typeString":"type(contract super MockERC20)"}},"id":5495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2056:17:18","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2050:23:18","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2050:57:18","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":5493,"id":5501,"nodeType":"Return","src":"2043:64:18"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1939:17:18","overrides":{"id":5490,"nodeType":"OverrideSpecifier","overrides":[],"src":"2009:8:18"},"parameters":{"id":5489,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5486,"mutability":"mutable","name":"spender","nameLocation":"1965:7:18","nodeType":"VariableDeclaration","scope":5503,"src":"1957:15:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5485,"name":"address","nodeType":"ElementaryTypeName","src":"1957:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5488,"mutability":"mutable","name":"difference","nameLocation":"1982:10:18","nodeType":"VariableDeclaration","scope":5503,"src":"1974:18:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5487,"name":"uint256","nodeType":"ElementaryTypeName","src":"1974:7:18","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1956:37:18"},"returnParameters":{"id":5493,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5492,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5503,"src":"2027:4:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":5491,"name":"bool","nodeType":"ElementaryTypeName","src":"2027:4:18","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2026:6:18"},"scope":5513,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":5512,"nodeType":"FunctionDefinition","src":"2120:195:18","nodes":[],"body":{"id":5511,"nodeType":"Block","src":"2191:124:18","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2253:56:18","statements":[{"nodeType":"YulAssignment","src":"2267:32:18","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2280:1:18"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2287:3:18","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2292:3:18"},"nodeType":"YulFunctionCall","src":"2292:5:18"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2283:3:18"},"nodeType":"YulFunctionCall","src":"2283:15:18"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2277:2:18"},"nodeType":"YulFunctionCall","src":"2277:22:18"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2267:6:18"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":5505,"isOffset":false,"isSlot":false,"src":"2280:1:18","valueSize":1},{"declaration":5508,"isOffset":false,"isSlot":false,"src":"2267:6:18","valueSize":1}],"id":5510,"nodeType":"InlineAssembly","src":"2244:65:18"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2129:11:18","parameters":{"id":5506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5505,"mutability":"mutable","name":"a","nameLocation":"2149:1:18","nodeType":"VariableDeclaration","scope":5512,"src":"2141:9:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5504,"name":"address","nodeType":"ElementaryTypeName","src":"2141:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2140:11:18"},"returnParameters":{"id":5509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5508,"mutability":"mutable","name":"result","nameLocation":"2183:6:18","nodeType":"VariableDeclaration","scope":5512,"src":"2175:14:18","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5507,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:18","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2174:16:18"},"scope":5513,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":5302,"name":"ERC20","nameLocations":["312:5:18"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"312:5:18"},"id":5303,"nodeType":"InheritanceSpecifier","src":"312:5:18"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":5301,"nodeType":"StructuredDocumentation","src":"120:170:18","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[5513,4491],"name":"MockERC20","nameLocation":"299:9:18","scope":5514,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":18} \ No newline at end of file diff --git a/pkg/contracts/out/PassportScorer.sol/PassportScorer.json b/pkg/contracts/out/PassportScorer.sol/PassportScorer.json index 6a4566b12..622507499 100644 --- a/pkg/contracts/out/PassportScorer.sol/PassportScorer.json +++ b/pkg/contracts/out/PassportScorer.sol/PassportScorer.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_listManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_passportData","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeListManager","inputs":[{"name":"_newManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"listManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeUser","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setThreshold","inputs":[{"name":"_newThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"userScores","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlyAuthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161074738038061074783398101604081905261002f916100e0565b61003833610066565b610041816100b6565b600180546001600160a01b0319166001600160a01b0392909216919091179055610110565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100dd5760405163d92e233d60e01b815260040160405180910390fd5b50565b6000602082840312156100f257600080fd5b81516001600160a01b038116811461010957600080fd5b9392505050565b6106288061011f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea26469706673582212200eb349d7e24eb0454d159d9c3bbc53e4fdb05c855a3ec44d78a65ef1a89a0a0c64736f6c63430008130033","sourceMap":"204:1455:112:-:0;;;768:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:27;719:10:35;936:18:27;:32::i;:::-;822::112::1;841:12:::0;822:18:::1;:32::i;:::-;864:11;:26:::0;;-1:-1:-1;;;;;;864:26:112::1;-1:-1:-1::0;;;;;864:26:112;;;::::1;::::0;;;::::1;::::0;;204:1455;;2426:187:27;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:27;;;-1:-1:-1;;;;;;2534:17:27;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;614:148:112:-;-1:-1:-1;;;;;687:22:112;;683:73;;732:13;;-1:-1:-1;;;732:13:112;;;;;;;;;;;683:73;614:148;:::o;14:290:123:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:123;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:123:o;:::-;204:1455:112;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea26469706673582212200eb349d7e24eb0454d159d9c3bbc53e4fdb05c855a3ec44d78a65ef1a89a0a0c64736f6c63430008130033","sourceMap":"204:1455:112:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;580:25:123;;;636:2;621:18;;614:34;;;;553:18;322:68:112;;;;;;;;1249:159;;;;;;:::i;:::-;;:::i;:::-;;291:24;;;;;;;;;805:25:123;;;793:2;778:18;291:24:112;659:177:123;1824:101:27;;;:::i;903:190:112:-;;;;;;:::i;:::-;;:::i;1201:85:27:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:27;1201:85;;;-1:-1:-1;;;;;1833:55:123;;;1815:74;;1803:2;1788:18;1201:85:27;1669:226:123;259:26:112;;;;;-1:-1:-1;;;;;259:26:112;;;1414:115;;;;;;:::i;:::-;;:::i;1099:144::-;;;;;;:::i;:::-;;:::i;1535:122::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;1633:17:112;;;;;:10;:17;;;;;;;;;1626:24;;;;;;;;;;;;;;;;;;;;1535:122;;;;;2311:13:123;;2293:32;;2381:4;2369:17;;;2363:24;2341:20;;;2334:54;;;;2266:18;1535:122:112;2085:309:123;2074:198:27;;;;;;:::i;:::-;;:::i;1249:159:112:-;1094:13:27;:11;:13::i;:::-;1335:31:112::1;1354:11;1335:18;:31::i;:::-;1376:11;:25:::0;;-1:-1:-1;;1376:25:112::1;-1:-1:-1::0;;;;;1376:25:112;;;::::1;::::0;;;::::1;::::0;;1249:159::o;1824:101:27:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;903:190:112:-;1247:7:27;1273:6;-1:-1:-1;;;;;1273:6:27;491:10:112;:21;;:50;;-1:-1:-1;530:11:112;;-1:-1:-1;;;;;530:11:112;516:10;:25;491:50;487:82;;;1018:25:::1;1037:5;1018:18;:25::i;:::-;-1:-1:-1::0;;;;;1053:17:112;::::1;;::::0;;;:10:::1;:17;::::0;;;;;;;:33;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;487:82;585:16;;-1:-1:-1;;;585:16:112;;;;;;;;;;;1414:115;1094:13:27;:11;:13::i;:::-;1497:9:112::1;:25:::0;1414:115::o;1099:144::-;1247:7:27;1273:6;-1:-1:-1;;;;;1273:6:27;491:10:112;:21;;:50;;-1:-1:-1;530:11:112;;-1:-1:-1;;;;;530:11:112;516:10;:25;491:50;487:82;;;1177:25:::1;1196:5;1177:18;:25::i;:::-;-1:-1:-1::0;;;;;1219:17:112;::::1;;::::0;;;:10:::1;:17;::::0;;;;1212:24;;;::::1;;::::0;585:16;;-1:-1:-1;;;585:16:112;;;;;;;;;;;2074:198:27;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:27;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:27;;2601:2:123;2154:73:27::1;::::0;::::1;2583:21:123::0;2640:2;2620:18;;;2613:30;2679:34;2659:18;;;2652:62;2750:8;2730:18;;;2723:36;2776:19;;2154:73:27::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:27;719:10:35;1422:23:27;1414:68;;;;-1:-1:-1;;;1414:68:27;;3008:2:123;1414:68:27;;;2990:21:123;;;3027:18;;;3020:30;3086:34;3066:18;;;3059:62;3138:18;;1414:68:27;2806:356:123;614:148:112;-1:-1:-1;;;;;687:22:112;;683:73;;732:13;;;;;;;;;;;;;;2426:187:27;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:27;;;-1:-1:-1;;2534:17:27;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:196:123:-;82:20;;-1:-1:-1;;;;;131:54:123;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:123:o;841:823::-;940:6;948;992:9;983:7;979:23;1022:2;1018;1014:11;1011:31;;;1038:1;1035;1028:12;1011:31;1061:29;1080:9;1061:29;:::i;:::-;1051:39;-1:-1:-1;1124:4:123;-1:-1:-1;;1106:16:123;;1102:27;1099:47;;;1142:1;1139;1132:12;1099:47;;1175:4;1169:11;1219:4;1211:6;1207:17;1290:6;1278:10;1275:22;1254:18;1242:10;1239:34;1236:62;1233:242;;;1331:77;1328:1;1321:88;1432:4;1429:1;1422:15;1460:4;1457:1;1450:15;1233:242;1491:4;1484:24;;;1560:2;1545:18;;;1532:32;1517:48;;1611:20;;1598:34;1581:15;;;1574:59;;;;-1:-1:-1;841:823:123;1524:6;;-1:-1:-1;841:823:123:o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:123;;1900:180;-1:-1:-1;1900:180:123:o","linkReferences":{}},"methodIdentifiers":{"addUserScore(address,(uint256,uint256))":"7814d568","changeListManager(address)":"3d476830","getUserScore(address)":"b34e0c47","listManager()":"8df8b2fe","owner()":"8da5cb5b","removeUser(address)":"98575188","renounceOwnership()":"715018a6","setThreshold(uint256)":"960bfe04","threshold()":"42cde4e8","transferOwnership(address)":"f2fde38b","userScores(address)":"1413d4c0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_listManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"OnlyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"_passportData\",\"type\":\"tuple\"}],\"name\":\"addUserScore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newManager\",\"type\":\"address\"}],\"name\":\"changeListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserScore\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"removeUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newThreshold\",\"type\":\"uint256\"}],\"name\":\"setThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"userScores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/PassportScorer.sol\":\"PassportScorer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"pkg/contracts/src/ISybilScorer.sol\":{\"keccak256\":\"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5\",\"dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x\"]},\"pkg/contracts/src/PassportScorer.sol\":{\"keccak256\":\"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b\",\"dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_listManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"OnlyAuthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"struct PassportData","name":"_passportData","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"addUserScore"},{"inputs":[{"internalType":"address","name":"_newManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeListManager"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserScore","outputs":[{"internalType":"struct PassportData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeUser"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"userScores","outputs":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/PassportScorer.sol":"PassportScorer"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"pkg/contracts/src/ISybilScorer.sol":{"keccak256":"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199","urls":["bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5","dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x"],"license":"MIT"},"pkg/contracts/src/PassportScorer.sol":{"keccak256":"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d","urls":["bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b","dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx"],"license":"AGPL-3.0-or-later"}},"version":1},"id":112} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_listManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_passportData","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeListManager","inputs":[{"name":"_newManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"listManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeUser","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setThreshold","inputs":[{"name":"_newThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"userScores","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlyAuthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161074738038061074783398101604081905261002f916100e0565b61003833610066565b610041816100b6565b600180546001600160a01b0319166001600160a01b0392909216919091179055610110565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100dd5760405163d92e233d60e01b815260040160405180910390fd5b50565b6000602082840312156100f257600080fd5b81516001600160a01b038116811461010957600080fd5b9392505050565b6106288061011f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea26469706673582212208a3eb43b0174df59917d6af888a03f815ab915b225a5c5c2b372e2c4de94064164736f6c63430008130033","sourceMap":"204:1455:130:-:0;;;768:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:61;734:10:81;936:18:61;:32::i;:::-;822::130::1;841:12:::0;822:18:::1;:32::i;:::-;864:11;:26:::0;;-1:-1:-1;;;;;;864:26:130::1;-1:-1:-1::0;;;;;864:26:130;;;::::1;::::0;;;::::1;::::0;;204:1455;;2426:187:61;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:61;;;-1:-1:-1;;;;;;2534:17:61;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;614:148:130:-;-1:-1:-1;;;;;687:22:130;;683:73;;732:13;;-1:-1:-1;;;732:13:130;;;;;;;;;;;683:73;614:148;:::o;14:290:144:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:144;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:144:o;:::-;204:1455:130;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea26469706673582212208a3eb43b0174df59917d6af888a03f815ab915b225a5c5c2b372e2c4de94064164736f6c63430008130033","sourceMap":"204:1455:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;580:25:144;;;636:2;621:18;;614:34;;;;553:18;322:68:130;;;;;;;;1249:159;;;;;;:::i;:::-;;:::i;:::-;;291:24;;;;;;;;;805:25:144;;;793:2;778:18;291:24:130;659:177:144;1824:101:61;;;:::i;903:190:130:-;;;;;;:::i;:::-;;:::i;1201:85:61:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:61;1201:85;;;-1:-1:-1;;;;;1833:55:144;;;1815:74;;1803:2;1788:18;1201:85:61;1669:226:144;259:26:130;;;;;-1:-1:-1;;;;;259:26:130;;;1414:115;;;;;;:::i;:::-;;:::i;1099:144::-;;;;;;:::i;:::-;;:::i;1535:122::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;1633:17:130;;;;;:10;:17;;;;;;;;;1626:24;;;;;;;;;;;;;;;;;;;;1535:122;;;;;2311:13:144;;2293:32;;2381:4;2369:17;;;2363:24;2341:20;;;2334:54;;;;2266:18;1535:122:130;2085:309:144;2074:198:61;;;;;;:::i;:::-;;:::i;1249:159:130:-;1094:13:61;:11;:13::i;:::-;1335:31:130::1;1354:11;1335:18;:31::i;:::-;1376:11;:25:::0;;-1:-1:-1;;1376:25:130::1;-1:-1:-1::0;;;;;1376:25:130;;;::::1;::::0;;;::::1;::::0;;1249:159::o;1824:101:61:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;903:190:130:-;1247:7:61;1273:6;-1:-1:-1;;;;;1273:6:61;491:10:130;:21;;:50;;-1:-1:-1;530:11:130;;-1:-1:-1;;;;;530:11:130;516:10;:25;491:50;487:82;;;1018:25:::1;1037:5;1018:18;:25::i;:::-;-1:-1:-1::0;;;;;1053:17:130;::::1;;::::0;;;:10:::1;:17;::::0;;;;;;;:33;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;487:82;585:16;;-1:-1:-1;;;585:16:130;;;;;;;;;;;1414:115;1094:13:61;:11;:13::i;:::-;1497:9:130::1;:25:::0;1414:115::o;1099:144::-;1247:7:61;1273:6;-1:-1:-1;;;;;1273:6:61;491:10:130;:21;;:50;;-1:-1:-1;530:11:130;;-1:-1:-1;;;;;530:11:130;516:10;:25;491:50;487:82;;;1177:25:::1;1196:5;1177:18;:25::i;:::-;-1:-1:-1::0;;;;;1219:17:130;::::1;;::::0;;;:10:::1;:17;::::0;;;;1212:24;;;::::1;;::::0;585:16;;-1:-1:-1;;;585:16:130;;;;;;;;;;;2074:198:61;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:61;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:61;;2601:2:144;2154:73:61::1;::::0;::::1;2583:21:144::0;2640:2;2620:18;;;2613:30;2679:34;2659:18;;;2652:62;2750:8;2730:18;;;2723:36;2776:19;;2154:73:61::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:61;734:10:81;1422:23:61;1414:68;;;;-1:-1:-1;;;1414:68:61;;3008:2:144;1414:68:61;;;2990:21:144;;;3027:18;;;3020:30;3086:34;3066:18;;;3059:62;3138:18;;1414:68:61;2806:356:144;614:148:130;-1:-1:-1;;;;;687:22:130;;683:73;;732:13;;;;;;;;;;;;;;2426:187:61;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:61;;;-1:-1:-1;;2534:17:61;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:196:144:-;82:20;;-1:-1:-1;;;;;131:54:144;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:144:o;841:823::-;940:6;948;992:9;983:7;979:23;1022:2;1018;1014:11;1011:31;;;1038:1;1035;1028:12;1011:31;1061:29;1080:9;1061:29;:::i;:::-;1051:39;-1:-1:-1;1124:4:144;-1:-1:-1;;1106:16:144;;1102:27;1099:47;;;1142:1;1139;1132:12;1099:47;;1175:4;1169:11;1219:4;1211:6;1207:17;1290:6;1278:10;1275:22;1254:18;1242:10;1239:34;1236:62;1233:242;;;1331:77;1328:1;1321:88;1432:4;1429:1;1422:15;1460:4;1457:1;1450:15;1233:242;1491:4;1484:24;;;1560:2;1545:18;;;1532:32;1517:48;;1611:20;;1598:34;1581:15;;;1574:59;;;;-1:-1:-1;841:823:144;1524:6;;-1:-1:-1;841:823:144:o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:144;;1900:180;-1:-1:-1;1900:180:144:o","linkReferences":{}},"methodIdentifiers":{"addUserScore(address,(uint256,uint256))":"7814d568","changeListManager(address)":"3d476830","getUserScore(address)":"b34e0c47","listManager()":"8df8b2fe","owner()":"8da5cb5b","removeUser(address)":"98575188","renounceOwnership()":"715018a6","setThreshold(uint256)":"960bfe04","threshold()":"42cde4e8","transferOwnership(address)":"f2fde38b","userScores(address)":"1413d4c0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_listManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"OnlyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"_passportData\",\"type\":\"tuple\"}],\"name\":\"addUserScore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newManager\",\"type\":\"address\"}],\"name\":\"changeListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserScore\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"removeUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newThreshold\",\"type\":\"uint256\"}],\"name\":\"setThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"userScores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/PassportScorer.sol\":\"PassportScorer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"pkg/contracts/src/ISybilScorer.sol\":{\"keccak256\":\"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5\",\"dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x\"]},\"pkg/contracts/src/PassportScorer.sol\":{\"keccak256\":\"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b\",\"dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_listManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"OnlyAuthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"struct PassportData","name":"_passportData","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"addUserScore"},{"inputs":[{"internalType":"address","name":"_newManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeListManager"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserScore","outputs":[{"internalType":"struct PassportData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeUser"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"userScores","outputs":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/PassportScorer.sol":"PassportScorer"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"pkg/contracts/src/ISybilScorer.sol":{"keccak256":"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199","urls":["bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5","dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x"],"license":"MIT"},"pkg/contracts/src/PassportScorer.sol":{"keccak256":"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d","urls":["bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b","dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx"],"license":"AGPL-3.0-or-later"}},"version":1},"storageLayout":{"storage":[{"astId":55606,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":75843,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"listManager","offset":0,"slot":"1","type":"t_address"},{"astId":75845,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"threshold","offset":0,"slot":"2","type":"t_uint256"},{"astId":75850,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"userScores","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(PassportData)75806_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_struct(PassportData)75806_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct PassportData)","numberOfBytes":"32","value":"t_struct(PassportData)75806_storage"},"t_struct(PassportData)75806_storage":{"encoding":"inplace","label":"struct PassportData","numberOfBytes":"64","members":[{"astId":75803,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"score","offset":0,"slot":"0","type":"t_uint256"},{"astId":75805,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"lastUpdated","offset":0,"slot":"1","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/PassportScorer.sol","id":75991,"exportedSymbols":{"ISybilScorer":[75830],"Ownable":[55711],"PassportData":[75806],"PassportScorer":[75990]},"nodeType":"SourceUnit","src":"46:1614:130","nodes":[{"id":75832,"nodeType":"PragmaDirective","src":"46:24:130","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75834,"nodeType":"ImportDirective","src":"72:67:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":75991,"sourceUnit":55712,"symbolAliases":[{"foreign":{"id":75833,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55711,"src":"80:7:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75837,"nodeType":"ImportDirective","src":"140:62:130","nodes":[],"absolutePath":"pkg/contracts/src/ISybilScorer.sol","file":"./ISybilScorer.sol","nameLocation":"-1:-1:-1","scope":75991,"sourceUnit":75831,"symbolAliases":[{"foreign":{"id":75835,"name":"ISybilScorer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75830,"src":"148:12:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75836,"name":"PassportData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75806,"src":"162:12:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75990,"nodeType":"ContractDefinition","src":"204:1455:130","nodes":[{"id":75843,"nodeType":"VariableDeclaration","src":"259:26:130","nodes":[],"constant":false,"functionSelector":"8df8b2fe","mutability":"mutable","name":"listManager","nameLocation":"274:11:130","scope":75990,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75842,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":75845,"nodeType":"VariableDeclaration","src":"291:24:130","nodes":[],"constant":false,"functionSelector":"42cde4e8","mutability":"mutable","name":"threshold","nameLocation":"306:9:130","scope":75990,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75844,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":75850,"nodeType":"VariableDeclaration","src":"322:68:130","nodes":[],"constant":false,"functionSelector":"1413d4c0","mutability":"mutable","name":"userScores","nameLocation":"380:10:130","scope":75990,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75806_storage_$","typeString":"mapping(address => struct PassportData)"},"typeName":{"id":75849,"keyName":"user","keyNameLocation":"338:4:130","keyType":{"id":75846,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"322:50:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75806_storage_$","typeString":"mapping(address => struct PassportData)"},"valueName":"passportData","valueNameLocation":"359:12:130","valueType":{"id":75848,"nodeType":"UserDefinedTypeName","pathNode":{"id":75847,"name":"PassportData","nameLocations":["346:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":75806,"src":"346:12:130"},"referencedDeclaration":75806,"src":"346:12:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage_ptr","typeString":"struct PassportData"}}},"visibility":"public"},{"id":75852,"nodeType":"ErrorDefinition","src":"397:23:130","nodes":[],"errorSelector":"7d7b71b5","name":"OnlyAuthorized","nameLocation":"403:14:130","parameters":{"id":75851,"nodeType":"ParameterList","parameters":[],"src":"417:2:130"}},{"id":75854,"nodeType":"ErrorDefinition","src":"425:20:130","nodes":[],"errorSelector":"d92e233d","name":"ZeroAddress","nameLocation":"431:11:130","parameters":{"id":75853,"nodeType":"ParameterList","parameters":[],"src":"442:2:130"}},{"id":75873,"nodeType":"ModifierDefinition","src":"451:157:130","nodes":[],"body":{"id":75872,"nodeType":"Block","src":"477:131:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75856,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"491:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75857,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"495:6:130","memberName":"sender","nodeType":"MemberAccess","src":"491:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75858,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55639,"src":"505:5:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75859,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:7:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"491:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75861,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"516:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"520:6:130","memberName":"sender","nodeType":"MemberAccess","src":"516:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75863,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75843,"src":"530:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"516:25:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"491:50:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75868,"nodeType":"IfStatement","src":"487:82:130","trueBody":{"id":75867,"nodeType":"Block","src":"543:26:130","statements":[{"id":75866,"nodeType":"PlaceholderStatement","src":"557:1:130"}]}},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75869,"name":"OnlyAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75852,"src":"585:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75870,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75871,"nodeType":"RevertStatement","src":"578:23:130"}]},"name":"onlyAuthorized","nameLocation":"460:14:130","parameters":{"id":75855,"nodeType":"ParameterList","parameters":[],"src":"474:2:130"},"virtual":false,"visibility":"internal"},{"id":75890,"nodeType":"FunctionDefinition","src":"614:148:130","nodes":[],"body":{"id":75889,"nodeType":"Block","src":"673:89:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75878,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75875,"src":"687:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":75881,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"707:1:130","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":75880,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"699:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75879,"name":"address","nodeType":"ElementaryTypeName","src":"699:7:130","typeDescriptions":{}}},"id":75882,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"699:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"687:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75888,"nodeType":"IfStatement","src":"683:73:130","trueBody":{"id":75887,"nodeType":"Block","src":"711:45:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75884,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"732:11:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75886,"nodeType":"RevertStatement","src":"725:20:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"623:18:130","parameters":{"id":75876,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75875,"mutability":"mutable","name":"_address","nameLocation":"650:8:130","nodeType":"VariableDeclaration","scope":75890,"src":"642:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75874,"name":"address","nodeType":"ElementaryTypeName","src":"642:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"641:18:130"},"returnParameters":{"id":75877,"nodeType":"ParameterList","parameters":[],"src":"673:0:130"},"scope":75990,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75906,"nodeType":"FunctionDefinition","src":"768:129:130","nodes":[],"body":{"id":75905,"nodeType":"Block","src":"812:85:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":75898,"name":"_listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"841:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75897,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"822:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"822:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75900,"nodeType":"ExpressionStatement","src":"822:32:130"},{"expression":{"id":75903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75901,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75843,"src":"864:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75902,"name":"_listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"878:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"864:26:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75904,"nodeType":"ExpressionStatement","src":"864:26:130"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":75895,"kind":"baseConstructorSpecifier","modifierName":{"id":75894,"name":"Ownable","nameLocations":["802:7:130"],"nodeType":"IdentifierPath","referencedDeclaration":55711,"src":"802:7:130"},"nodeType":"ModifierInvocation","src":"802:9:130"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75892,"mutability":"mutable","name":"_listManager","nameLocation":"788:12:130","nodeType":"VariableDeclaration","scope":75906,"src":"780:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75891,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"779:22:130"},"returnParameters":{"id":75896,"nodeType":"ParameterList","parameters":[],"src":"812:0:130"},"scope":75990,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75928,"nodeType":"FunctionDefinition","src":"903:190:130","nodes":[],"body":{"id":75927,"nodeType":"Block","src":"1008:85:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":75918,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75908,"src":"1037:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75917,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"1018:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75919,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1018:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75920,"nodeType":"ExpressionStatement","src":"1018:25:130"},{"expression":{"id":75925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75921,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75850,"src":"1053:10:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75806_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75923,"indexExpression":{"id":75922,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75908,"src":"1064:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1053:17:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage","typeString":"struct PassportData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75924,"name":"_passportData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75911,"src":"1073:13:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_memory_ptr","typeString":"struct PassportData memory"}},"src":"1053:33:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage","typeString":"struct PassportData storage ref"}},"id":75926,"nodeType":"ExpressionStatement","src":"1053:33:130"}]},"baseFunctions":[75814],"functionSelector":"7814d568","implemented":true,"kind":"function","modifiers":[{"id":75915,"kind":"modifierInvocation","modifierName":{"id":75914,"name":"onlyAuthorized","nameLocations":["993:14:130"],"nodeType":"IdentifierPath","referencedDeclaration":75873,"src":"993:14:130"},"nodeType":"ModifierInvocation","src":"993:14:130"}],"name":"addUserScore","nameLocation":"912:12:130","overrides":{"id":75913,"nodeType":"OverrideSpecifier","overrides":[],"src":"984:8:130"},"parameters":{"id":75912,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75908,"mutability":"mutable","name":"_user","nameLocation":"933:5:130","nodeType":"VariableDeclaration","scope":75928,"src":"925:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75907,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75911,"mutability":"mutable","name":"_passportData","nameLocation":"960:13:130","nodeType":"VariableDeclaration","scope":75928,"src":"940:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_memory_ptr","typeString":"struct PassportData"},"typeName":{"id":75910,"nodeType":"UserDefinedTypeName","pathNode":{"id":75909,"name":"PassportData","nameLocations":["940:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":75806,"src":"940:12:130"},"referencedDeclaration":75806,"src":"940:12:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage_ptr","typeString":"struct PassportData"}},"visibility":"internal"}],"src":"924:50:130"},"returnParameters":{"id":75916,"nodeType":"ParameterList","parameters":[],"src":"1008:0:130"},"scope":75990,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75946,"nodeType":"FunctionDefinition","src":"1099:144:130","nodes":[],"body":{"id":75945,"nodeType":"Block","src":"1167:76:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":75937,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75930,"src":"1196:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75936,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"1177:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75939,"nodeType":"ExpressionStatement","src":"1177:25:130"},{"expression":{"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1212:24:130","subExpression":{"baseExpression":{"id":75940,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75850,"src":"1219:10:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75806_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75942,"indexExpression":{"id":75941,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75930,"src":"1230:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1219:17:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage","typeString":"struct PassportData storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75944,"nodeType":"ExpressionStatement","src":"1212:24:130"}]},"baseFunctions":[75819],"functionSelector":"98575188","implemented":true,"kind":"function","modifiers":[{"id":75934,"kind":"modifierInvocation","modifierName":{"id":75933,"name":"onlyAuthorized","nameLocations":["1152:14:130"],"nodeType":"IdentifierPath","referencedDeclaration":75873,"src":"1152:14:130"},"nodeType":"ModifierInvocation","src":"1152:14:130"}],"name":"removeUser","nameLocation":"1108:10:130","overrides":{"id":75932,"nodeType":"OverrideSpecifier","overrides":[],"src":"1143:8:130"},"parameters":{"id":75931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75930,"mutability":"mutable","name":"_user","nameLocation":"1127:5:130","nodeType":"VariableDeclaration","scope":75946,"src":"1119:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75929,"name":"address","nodeType":"ElementaryTypeName","src":"1119:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1118:15:130"},"returnParameters":{"id":75935,"nodeType":"ParameterList","parameters":[],"src":"1167:0:130"},"scope":75990,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75963,"nodeType":"FunctionDefinition","src":"1249:159:130","nodes":[],"body":{"id":75962,"nodeType":"Block","src":"1325:83:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":75955,"name":"_newManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75948,"src":"1354:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75954,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75890,"src":"1335:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1335:31:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75957,"nodeType":"ExpressionStatement","src":"1335:31:130"},{"expression":{"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75958,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75843,"src":"1376:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75959,"name":"_newManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75948,"src":"1390:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1376:25:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75961,"nodeType":"ExpressionStatement","src":"1376:25:130"}]},"baseFunctions":[75824],"functionSelector":"3d476830","implemented":true,"kind":"function","modifiers":[{"id":75952,"kind":"modifierInvocation","modifierName":{"id":75951,"name":"onlyOwner","nameLocations":["1315:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":55630,"src":"1315:9:130"},"nodeType":"ModifierInvocation","src":"1315:9:130"}],"name":"changeListManager","nameLocation":"1258:17:130","overrides":{"id":75950,"nodeType":"OverrideSpecifier","overrides":[],"src":"1306:8:130"},"parameters":{"id":75949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75948,"mutability":"mutable","name":"_newManager","nameLocation":"1284:11:130","nodeType":"VariableDeclaration","scope":75963,"src":"1276:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75947,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1275:21:130"},"returnParameters":{"id":75953,"nodeType":"ParameterList","parameters":[],"src":"1325:0:130"},"scope":75990,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75976,"nodeType":"FunctionDefinition","src":"1414:115:130","nodes":[],"body":{"id":75975,"nodeType":"Block","src":"1487:42:130","nodes":[],"statements":[{"expression":{"id":75973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75971,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75845,"src":"1497:9:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75972,"name":"_newThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75965,"src":"1509:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1497:25:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75974,"nodeType":"ExpressionStatement","src":"1497:25:130"}]},"baseFunctions":[75829],"functionSelector":"960bfe04","implemented":true,"kind":"function","modifiers":[{"id":75969,"kind":"modifierInvocation","modifierName":{"id":75968,"name":"onlyOwner","nameLocations":["1477:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":55630,"src":"1477:9:130"},"nodeType":"ModifierInvocation","src":"1477:9:130"}],"name":"setThreshold","nameLocation":"1423:12:130","overrides":{"id":75967,"nodeType":"OverrideSpecifier","overrides":[],"src":"1468:8:130"},"parameters":{"id":75966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75965,"mutability":"mutable","name":"_newThreshold","nameLocation":"1444:13:130","nodeType":"VariableDeclaration","scope":75976,"src":"1436:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75964,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1435:23:130"},"returnParameters":{"id":75970,"nodeType":"ParameterList","parameters":[],"src":"1487:0:130"},"scope":75990,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75989,"nodeType":"FunctionDefinition","src":"1535:122:130","nodes":[],"body":{"id":75988,"nodeType":"Block","src":"1616:41:130","nodes":[],"statements":[{"expression":{"baseExpression":{"id":75984,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75850,"src":"1633:10:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75806_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75986,"indexExpression":{"id":75985,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75978,"src":"1644:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1633:17:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage","typeString":"struct PassportData storage ref"}},"functionReturnParameters":75983,"id":75987,"nodeType":"Return","src":"1626:24:130"}]},"functionSelector":"b34e0c47","implemented":true,"kind":"function","modifiers":[],"name":"getUserScore","nameLocation":"1544:12:130","parameters":{"id":75979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75978,"mutability":"mutable","name":"_user","nameLocation":"1565:5:130","nodeType":"VariableDeclaration","scope":75989,"src":"1557:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75977,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:15:130"},"returnParameters":{"id":75983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75982,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75989,"src":"1595:19:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_memory_ptr","typeString":"struct PassportData"},"typeName":{"id":75981,"nodeType":"UserDefinedTypeName","pathNode":{"id":75980,"name":"PassportData","nameLocations":["1595:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":75806,"src":"1595:12:130"},"referencedDeclaration":75806,"src":"1595:12:130","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75806_storage_ptr","typeString":"struct PassportData"}},"visibility":"internal"}],"src":"1594:21:130"},"scope":75990,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":75838,"name":"Ownable","nameLocations":["231:7:130"],"nodeType":"IdentifierPath","referencedDeclaration":55711,"src":"231:7:130"},"id":75839,"nodeType":"InheritanceSpecifier","src":"231:7:130"},{"baseName":{"id":75840,"name":"ISybilScorer","nameLocations":["240:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":75830,"src":"240:12:130"},"id":75841,"nodeType":"InheritanceSpecifier","src":"240:12:130"}],"canonicalName":"PassportScorer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75990,75830,55711,57959],"name":"PassportScorer","nameLocation":"213:14:130","scope":75991,"usedErrors":[75852,75854]}],"license":"AGPL-3.0-or-later"},"id":130} \ No newline at end of file diff --git a/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json b/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json index 2a17b9a88..de1826985 100644 --- a/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json +++ b/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setEnableGasLog","inputs":[{"name":"enable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFuzz_increasePowerCapped","inputs":[{"name":"tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_revertGetProtocolFee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601e805482168317905560209190915560218054909116905560c0604052600560809081526437bbb732b960d91b60a0526200004c9062000086565b602160016101000a8154816001600160a01b0302191690836001600160a01b031602179055503480156200007f57600080fd5b5062000273565b600062000093826200009a565b5092915050565b60008082604051602001620000b09190620001df565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200011c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001429190620001fd565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906200018090859087906004016200022f565b600060405180830381600087803b1580156200019b57600080fd5b505af1158015620001b0573d6000803e3d6000fd5b50505050915091565b60005b83811015620001d6578181015183820152602001620001bc565b50506000910152565b60008251620001f3818460208701620001b9565b9190910192915050565b6000602082840312156200021057600080fd5b81516001600160a01b03811681146200022857600080fd5b9392505050565b60018060a01b038316815260406020820152600082518060408401526200025e816060850160208701620001b9565b601f01601f1916919091016060019392505050565b61143780620002836000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea2646970667358221220da3438af78bc27ef04e1c98bddebc5dc488df33e20c0b79fcd77ab0f03747c6b64736f6c63430008130033","sourceMap":"3126:44:54:-:0;;;3166:4;-1:-1:-1;;3126:44:54;;;;;;;;1016:26:64;;;;;;;;;158:37:120;;;;;226:34;;;;;;;;472:17:118;393:1018;472:17;;393:1018;472:17;;;-1:-1:-1;;;472:17:118;;;;:8;:17::i;:::-;456:33;;;;;;;-1:-1:-1;;;;;456:33:118;;;;;-1:-1:-1;;;;;456:33:118;;;;;;393:1018;;;;;;;;;;;;20439:125:55;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:55;20439:125;-1:-1:-1;;20439:125:55:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:55;;;;;;;20293:33;;20303:22;20293:33;;;;-1:-1:-1;;;;;;20344:19:55;;;;;709:25:123;;;20293:33:55;-1:-1:-1;20344:7:55;;;;682:18:123;;20344:19:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;-1:-1:-1;;;20373:20:55;;20337:26;;-1:-1:-1;20373:8:55;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;14:250:123:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:123;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:123:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:123;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:123:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:123;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:123:o;:::-;393:1018:118;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea2646970667358221220da3438af78bc27ef04e1c98bddebc5dc488df33e20c0b79fcd77ab0f03747c6b64736f6c63430008130033","sourceMap":"393:1018:118:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:127;;;:::i;:::-;;496:86;;;:::i;2452:134:57:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;267:84:120:-;;;;;;:::i;:::-;322:13;:22;;-1:-1:-1;;322:22:120;;;;;;;;;;267:84;3221:133:57;;;:::i;2922:141::-;;;:::i;721:382:118:-;;;:::i;1109:300::-;;;;;;:::i;:::-;;:::i;2738:178:57:-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;2157:141::-;;;:::i;1243:204:53:-;;;:::i;:::-;;;5979:14:123;;5972:22;5954:41;;5942:2;5927:18;1243:204:53;5814:187:123;2304:142:57;;;:::i;1016:26:64:-;;;;;;;;;588:127:118;644:35;;;;;;;;;;;;;;;;;;:17;:35::i;:::-;690:18;:16;:18::i;:::-;588:127::o;496:86::-;544:5;;530:20;;-1:-1:-1;;;530:20:118;;544:5;;;;-1:-1:-1;;;;;544:5:118;530:20;;;6152:74:123;530:13:118;;;;6125:18:123;;530:20:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:51;309:37;;-1:-1:-1;;;;;561:12:118;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;496:86::o;2452:134:57:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:57;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:57;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:57;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;721:382:118:-;775:41;;;;;;;;;;;;;;;;;;:17;:41::i;:::-;840:5;;826:20;;-1:-1:-1;;;826:20:118;;840:5;;;;-1:-1:-1;;;;;840:5:118;826:20;;;6152:74:123;826:13:118;;;;6125:18:123;;826:20:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:51;309:37;;-1:-1:-1;;;;;1054:12:118;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1078:18;:16;:18::i;1109:300::-;1185:31;;-1:-1:-1;;;1185:31:118;;1195:20;;1185:31;;;5954:41:123;1185:9:118;;;;5927:18:123;;1185:31:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1226:27:118;;-1:-1:-1;;;1226:27:118;;1236:16;1226:27;;;5954:41:123;1226:9:118;;-1:-1:-1;1226:9:118;;-1:-1:-1;5927:18:123;;1226:27:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1278:5:118;;1264:20;;-1:-1:-1;;;1264:20:118;;1278:5;;;;-1:-1:-1;;;;;1278:5:118;1264:20;;;6152:74:123;1264:13:118;;-1:-1:-1;1264:13:118;;-1:-1:-1;6125:18:123;;1264:20:118;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:51;309:37;;-1:-1:-1;;;;;1294:12:118;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1366:36;1375:4;1381;1366:36;;;;;;;;;;;;;;;;;:8;:36::i;:::-;1109:300;:::o;2738:178:57:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2157:141;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:53;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:53;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;6853:74:123;;;1398:17:53;6943:18:123;;;6936:34;1428:1:53;;1377:7;;6826:18:123;;1377:39:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:57:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:57;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;357:192:120:-;436:13;;;;432:111;;;465:15;:23;483:5;465:15;:23;:::i;:::-;;523:9;503:17;:29;357:192;:::o;555:396::-;614:13;;;;610:335;;;643:26;672:9;643:38;;776:16;836:3;815:18;795:17;;:38;;;;:::i;:::-;:44;;;;:::i;:::-;776:63;;859:75;898:15;881:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;881:41:120;;;;;;;;;;859:75;;925:8;;859:75;:::i;:::-;;;;;;;;629:316;;555:396::o;2136:128:53:-;2228:29;;;;;:11;;;;:29;;2240:4;;2246:5;;2253:3;;2228:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:128;;;:::o;14:681:123:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:123;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:123;;14:681;-1:-1:-1;;;;;;14:681:123:o;700:423::-;742:3;780:5;774:12;807:6;802:3;795:19;832:1;842:162;856:6;853:1;850:13;842:162;;;918:4;974:13;;;970:22;;964:29;946:11;;;942:20;;935:59;871:12;842:162;;;846:3;1049:1;1042:4;1033:6;1028:3;1024:16;1020:27;1013:38;1112:4;1105:2;1101:7;1096:2;1088:6;1084:15;1080:29;1075:3;1071:39;1067:50;1060:57;;;700:423;;;;:::o;1128:1767::-;1363:2;1415:21;;;1485:13;;1388:18;;;1507:22;;;1334:4;;1363:2;1548;;1566:18;;;;1603:1;1646:15;;;1631:31;;1627:40;;1690:15;;;1334:4;;1754:1112;1770:6;1765:3;1762:15;1754:1112;;;-1:-1:-1;;1839:22:123;;;1835:36;1823:49;;1895:13;;1982:9;;-1:-1:-1;;;;;1978:58:123;1963:74;;2076:11;;2070:18;2108:15;;;2101:27;;;2189:19;;1935:15;;;2221:24;;;2402:21;;;;2268:2;2350:17;;;2338:30;;2334:39;;;2292:15;;;;2447:1;2461:296;2477:8;2472:3;2469:17;2461:296;;;2583:2;2579:7;2570:6;2562;2558:19;2554:33;2547:5;2540:48;2615:42;2650:6;2639:8;2633:15;2615:42;:::i;:::-;2686:17;;;;2605:52;-1:-1:-1;2729:14:123;;;;2505:1;2496:11;2461:296;;;-1:-1:-1;;;2844:12:123;;;;2780:6;-1:-1:-1;;2809:15:123;;;;1796:1;1787:11;1754:1112;;;-1:-1:-1;2883:6:123;;1128:1767;-1:-1:-1;;;;;;;;;;1128:1767:123:o;2900:273::-;2956:6;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3117:5;3110:13;3103:21;3096:5;3093:32;3083:60;;3139:1;3136;3129:12;3083:60;3162:5;2900:273;-1:-1:-1;;;2900:273:123:o;3178:180::-;3237:6;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;-1:-1:-1;3329:23:123;;3178:180;-1:-1:-1;3178:180:123:o;3363:1638::-;3567:4;3596:2;3636;3625:9;3621:18;3666:2;3655:9;3648:21;3689:6;3724;3718:13;3755:6;3747;3740:22;3781:2;3771:12;;3814:2;3803:9;3799:18;3792:25;;3876:2;3866:6;3863:1;3859:14;3848:9;3844:30;3840:39;3914:2;3906:6;3902:15;3935:1;3956;3966:1006;3982:6;3977:3;3974:15;3966:1006;;;4051:22;;;-1:-1:-1;;4047:36:123;4035:49;;4107:13;;4194:9;;-1:-1:-1;;;;;4190:58:123;4175:74;;4288:11;;4282:18;4320:15;;;4313:27;;;4401:19;;4147:15;;;4433:24;;;4523:21;;;;4568:1;;4491:2;4479:15;;;4582:282;4598:8;4593:3;4590:17;4582:282;;;4679:15;;4696:66;4675:88;4661:103;;4833:17;;;;4626:1;4617:11;;;;;4790:14;;;;4582:282;;;-1:-1:-1;4950:12:123;;;;4887:5;-1:-1:-1;;;4915:15:123;;;;4008:1;3999:11;3966:1006;;;-1:-1:-1;4989:6:123;;3363:1638;-1:-1:-1;;;;;;;;;3363:1638:123:o;5006:803::-;5168:4;5197:2;5237;5226:9;5222:18;5267:2;5256:9;5249:21;5290:6;5325;5319:13;5356:6;5348;5341:22;5394:2;5383:9;5379:18;5372:25;;5456:2;5446:6;5443:1;5439:14;5428:9;5424:30;5420:39;5406:53;;5494:2;5486:6;5482:15;5515:1;5525:255;5539:6;5536:1;5533:13;5525:255;;;5632:2;5628:7;5616:9;5608:6;5604:22;5600:36;5595:3;5588:49;5660:40;5693:6;5684;5678:13;5660:40;:::i;:::-;5650:50;-1:-1:-1;5758:12:123;;;;5723:15;;;;5561:1;5554:9;5525:255;;;-1:-1:-1;5797:6:123;;5006:803;-1:-1:-1;;;;;;;5006:803:123:o;6237:437::-;6316:1;6312:12;;;;6359;;;6380:61;;6434:4;6426:6;6422:17;6412:27;;6380:61;6487:2;6479:6;6476:14;6456:18;6453:38;6450:218;;-1:-1:-1;;;6521:1:123;6514:88;6625:4;6622:1;6615:15;6653:4;6650:1;6643:15;6450:218;;6237:437;;;:::o;6981:184::-;7051:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:52;;;7120:1;7117;7110:12;7072:52;-1:-1:-1;7143:16:123;;6981:184;-1:-1:-1;6981:184:123:o;7170:::-;-1:-1:-1;;;7219:1:123;7212:88;7319:4;7316:1;7309:15;7343:4;7340:1;7333:15;7485:545;7587:2;7582:3;7579:11;7576:448;;;7623:1;7648:5;7644:2;7637:17;7693:4;7689:2;7679:19;7763:2;7751:10;7747:19;7744:1;7740:27;7734:4;7730:38;7799:4;7787:10;7784:20;7781:47;;;-1:-1:-1;7822:4:123;7781:47;7877:2;7872:3;7868:12;7865:1;7861:20;7855:4;7851:31;7841:41;;7932:82;7950:2;7943:5;7940:13;7932:82;;;7995:17;;;7976:1;7965:13;7932:82;;;7936:3;;;7576:448;7485:545;;;:::o;8206:1352::-;8332:3;8326:10;8359:18;8351:6;8348:30;8345:56;;;8381:18;;:::i;:::-;8410:97;8500:6;8460:38;8492:4;8486:11;8460:38;:::i;:::-;8454:4;8410:97;:::i;:::-;8562:4;;8626:2;8615:14;;8643:1;8638:663;;;;9345:1;9362:6;9359:89;;;-1:-1:-1;9414:19:123;;;9408:26;9359:89;-1:-1:-1;;8163:1:123;8159:11;;;8155:24;8151:29;8141:40;8187:1;8183:11;;;8138:57;9461:81;;8608:944;;8638:663;7432:1;7425:14;;;7469:4;7456:18;;-1:-1:-1;;8674:20:123;;;8792:236;8806:7;8803:1;8800:14;8792:236;;;8895:19;;;8889:26;8874:42;;8987:27;;;;8955:1;8943:14;;;;8822:19;;8792:236;;;8796:3;9056:6;9047:7;9044:19;9041:201;;;9117:19;;;9111:26;-1:-1:-1;;9200:1:123;9196:14;;;9212:3;9192:24;9188:37;9184:42;9169:58;9154:74;;9041:201;-1:-1:-1;;;;;9288:1:123;9272:14;;;9268:22;9255:36;;-1:-1:-1;8206:1352:123:o;9563:282::-;9630:9;;;9651:11;;;9648:191;;;-1:-1:-1;;;9692:1:123;9685:88;9796:4;9793:1;9786:15;9824:4;9821:1;9814:15;9648:191;9563:282;;;;:::o;9850:979::-;10079:3;10108:1;10141:6;10135:13;10171:36;10197:9;10171:36;:::i;:::-;10226:1;10243:18;;;10270:133;;;;10417:1;10412:356;;;;10236:532;;10270:133;-1:-1:-1;;10303:24:123;;10291:37;;10376:14;;10369:22;10357:35;;10348:45;;;-1:-1:-1;10270:133:123;;10412:356;10443:6;10440:1;10433:17;10473:4;10518:2;10515:1;10505:16;10543:1;10557:165;10571:6;10568:1;10565:13;10557:165;;;10649:14;;10636:11;;;10629:35;10692:16;;;;10586:10;;10557:165;;;10561:3;;;10751:6;10746:3;10742:16;10735:23;;10236:532;-1:-1:-1;;10789:6:123;10777:19;;-1:-1:-1;;10821:1:123;10812:11;;9850:979;-1:-1:-1;;;9850:979:123:o;10834:291::-;11011:2;11000:9;10993:21;10974:4;11031:45;11072:2;11061:9;11057:18;11049:6;11031:45;:::i;:::-;11023:53;;11112:6;11107:2;11096:9;11092:18;11085:34;10834:291;;;;;:::o;11130:382::-;11337:6;11330:14;11323:22;11312:9;11305:41;11396:6;11389:14;11382:22;11377:2;11366:9;11362:18;11355:50;11441:2;11436;11425:9;11421:18;11414:30;11286:4;11461:45;11502:2;11491:9;11487:18;11479:6;11461:45;:::i;:::-;11453:53;11130:382;-1:-1:-1;;;;;11130:382:123:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setEnableGasLog(bool)":"2d0e6731","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFuzz_increasePowerCapped(uint256)":"5e8f4ff8","test_revertGetProtocolFee()":"5d53949a","test_stakeAndRegisterMember()":"0354ae60"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setEnableGasLog\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"testFuzz_increasePowerCapped\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_revertGetProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/PassportScorerTest.t.sol\":\"PassportScorerTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"pkg/contracts/test/PassportScorerTest.t.sol\":{\"keccak256\":\"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb\",\"dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H\"]},\"pkg/contracts/test/shared/GasHelpers2.sol\":{\"keccak256\":\"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c\",\"dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setEnableGasLog"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_increasePowerCapped"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_revertGetProtocolFee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_stakeAndRegisterMember"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/PassportScorerTest.t.sol":"PassportScorerTest"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"pkg/contracts/test/PassportScorerTest.t.sol":{"keccak256":"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127","urls":["bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb","dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H"],"license":"AGPL-3.0-or-later"},"pkg/contracts/test/shared/GasHelpers2.sol":{"keccak256":"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5","urls":["bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c","dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk"],"license":"MIT"}},"version":1},"id":118} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setEnableGasLog","inputs":[{"name":"enable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFuzz_increasePowerCapped","inputs":[{"name":"tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_revertGetProtocolFee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601e805482168317905560209190915560218054909116905560c0604052600560809081526437bbb732b960d91b60a0526200004c9062000086565b602160016101000a8154816001600160a01b0302191690836001600160a01b031602179055503480156200007f57600080fd5b5062000273565b600062000093826200009a565b5092915050565b60008082604051602001620000b09190620001df565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200011c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001429190620001fd565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906200018090859087906004016200022f565b600060405180830381600087803b1580156200019b57600080fd5b505af1158015620001b0573d6000803e3d6000fd5b50505050915091565b60005b83811015620001d6578181015183820152602001620001bc565b50506000910152565b60008251620001f3818460208701620001b9565b9190910192915050565b6000602082840312156200021057600080fd5b81516001600160a01b03811681146200022857600080fd5b9392505050565b60018060a01b038316815260406020820152600082518060408401526200025e816060850160208701620001b9565b601f01601f1916919091016060019392505050565b61143780620002836000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea26469706673582212206efb27b88c6d30d914edf598025bdab67ec10a013873de05007ba2936658ae1164736f6c63430008130033","sourceMap":"3126:44:24:-:0;;;3166:4;-1:-1:-1;;3126:44:24;;;;;;;;1016:26:34;;;;;;;;;158:37:141;;;;;226:34;;;;;;;;472:17:138;393:1018;472:17;;393:1018;472:17;;;-1:-1:-1;;;472:17:138;;;;:8;:17::i;:::-;456:33;;;;;;;-1:-1:-1;;;;;456:33:138;;;;;-1:-1:-1;;;;;456:33:138;;;;;;393:1018;;;;;;;;;;;;20439:125:25;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:25;20439:125;-1:-1:-1;;20439:125:25:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:25;;;;;;;20293:33;;20303:22;20293:33;;;;-1:-1:-1;;;;;;20344:19:25;;;;;709:25:144;;;20293:33:25;-1:-1:-1;20344:7:25;;;;682:18:144;;20344:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;-1:-1:-1;;;20373:20:25;;20337:26;;-1:-1:-1;20373:8:25;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;14:250:144:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:144;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:144:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:144;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:144:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:144;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:144:o;:::-;393:1018:138;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea26469706673582212206efb27b88c6d30d914edf598025bdab67ec10a013873de05007ba2936658ae1164736f6c63430008130033","sourceMap":"393:1018:138:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:127;;;:::i;:::-;;496:86;;;:::i;2452:134:27:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;267:84:141:-;;;;;;:::i;:::-;322:13;:22;;-1:-1:-1;;322:22:141;;;;;;;;;;267:84;3221:133:27;;;:::i;2922:141::-;;;:::i;721:382:138:-;;;:::i;1109:300::-;;;;;;:::i;:::-;;:::i;2738:178:27:-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;2157:141::-;;;:::i;1243:204:23:-;;;:::i;:::-;;;5979:14:144;;5972:22;5954:41;;5942:2;5927:18;1243:204:23;5814:187:144;2304:142:27;;;:::i;1016:26:34:-;;;;;;;;;588:127:138;644:35;;;;;;;;;;;;;;;;;;:17;:35::i;:::-;690:18;:16;:18::i;:::-;588:127::o;496:86::-;544:5;;530:20;;-1:-1:-1;;;530:20:138;;544:5;;;;-1:-1:-1;;;;;544:5:138;530:20;;;6152:74:144;530:13:138;;;;6125:18:144;;530:20:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:21;309:37;;-1:-1:-1;;;;;561:12:138;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;496:86::o;2452:134:27:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:27;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:27;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:27;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;721:382:138:-;775:41;;;;;;;;;;;;;;;;;;:17;:41::i;:::-;840:5;;826:20;;-1:-1:-1;;;826:20:138;;840:5;;;;-1:-1:-1;;;;;840:5:138;826:20;;;6152:74:144;826:13:138;;;;6125:18:144;;826:20:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:21;309:37;;-1:-1:-1;;;;;1054:12:138;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1078:18;:16;:18::i;1109:300::-;1185:31;;-1:-1:-1;;;1185:31:138;;1195:20;;1185:31;;;5954:41:144;1185:9:138;;;;5927:18:144;;1185:31:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1226:27:138;;-1:-1:-1;;;1226:27:138;;1236:16;1226:27;;;5954:41:144;1226:9:138;;-1:-1:-1;1226:9:138;;-1:-1:-1;5927:18:144;;1226:27:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1278:5:138;;1264:20;;-1:-1:-1;;;1264:20:138;;1278:5;;;;-1:-1:-1;;;;;1278:5:138;1264:20;;;6152:74:144;1264:13:138;;-1:-1:-1;1264:13:138;;-1:-1:-1;6125:18:144;;1264:20:138;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:21;309:37;;-1:-1:-1;;;;;1294:12:138;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1366:36;1375:4;1381;1366:36;;;;;;;;;;;;;;;;;:8;:36::i;:::-;1109:300;:::o;2738:178:27:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2157:141;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:23;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:23;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;6853:74:144;;;1398:17:23;6943:18:144;;;6936:34;1428:1:23;;1377:7;;6826:18:144;;1377:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:27:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:27;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;357:192:141:-;436:13;;;;432:111;;;465:15;:23;483:5;465:15;:23;:::i;:::-;;523:9;503:17;:29;357:192;:::o;555:396::-;614:13;;;;610:335;;;643:26;672:9;643:38;;776:16;836:3;815:18;795:17;;:38;;;;:::i;:::-;:44;;;;:::i;:::-;776:63;;859:75;898:15;881:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;881:41:141;;;;;;;;;;859:75;;925:8;;859:75;:::i;:::-;;;;;;;;629:316;;555:396::o;2136:128:23:-;2228:29;;;;;:11;;;;:29;;2240:4;;2246:5;;2253:3;;2228:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:128;;;:::o;14:681:144:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:144;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:144;;14:681;-1:-1:-1;;;;;;14:681:144:o;700:423::-;742:3;780:5;774:12;807:6;802:3;795:19;832:1;842:162;856:6;853:1;850:13;842:162;;;918:4;974:13;;;970:22;;964:29;946:11;;;942:20;;935:59;871:12;842:162;;;846:3;1049:1;1042:4;1033:6;1028:3;1024:16;1020:27;1013:38;1112:4;1105:2;1101:7;1096:2;1088:6;1084:15;1080:29;1075:3;1071:39;1067:50;1060:57;;;700:423;;;;:::o;1128:1767::-;1363:2;1415:21;;;1485:13;;1388:18;;;1507:22;;;1334:4;;1363:2;1548;;1566:18;;;;1603:1;1646:15;;;1631:31;;1627:40;;1690:15;;;1334:4;;1754:1112;1770:6;1765:3;1762:15;1754:1112;;;-1:-1:-1;;1839:22:144;;;1835:36;1823:49;;1895:13;;1982:9;;-1:-1:-1;;;;;1978:58:144;1963:74;;2076:11;;2070:18;2108:15;;;2101:27;;;2189:19;;1935:15;;;2221:24;;;2402:21;;;;2268:2;2350:17;;;2338:30;;2334:39;;;2292:15;;;;2447:1;2461:296;2477:8;2472:3;2469:17;2461:296;;;2583:2;2579:7;2570:6;2562;2558:19;2554:33;2547:5;2540:48;2615:42;2650:6;2639:8;2633:15;2615:42;:::i;:::-;2686:17;;;;2605:52;-1:-1:-1;2729:14:144;;;;2505:1;2496:11;2461:296;;;-1:-1:-1;;;2844:12:144;;;;2780:6;-1:-1:-1;;2809:15:144;;;;1796:1;1787:11;1754:1112;;;-1:-1:-1;2883:6:144;;1128:1767;-1:-1:-1;;;;;;;;;;1128:1767:144:o;2900:273::-;2956:6;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3117:5;3110:13;3103:21;3096:5;3093:32;3083:60;;3139:1;3136;3129:12;3083:60;3162:5;2900:273;-1:-1:-1;;;2900:273:144:o;3178:180::-;3237:6;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;-1:-1:-1;3329:23:144;;3178:180;-1:-1:-1;3178:180:144:o;3363:1638::-;3567:4;3596:2;3636;3625:9;3621:18;3666:2;3655:9;3648:21;3689:6;3724;3718:13;3755:6;3747;3740:22;3781:2;3771:12;;3814:2;3803:9;3799:18;3792:25;;3876:2;3866:6;3863:1;3859:14;3848:9;3844:30;3840:39;3914:2;3906:6;3902:15;3935:1;3956;3966:1006;3982:6;3977:3;3974:15;3966:1006;;;4051:22;;;-1:-1:-1;;4047:36:144;4035:49;;4107:13;;4194:9;;-1:-1:-1;;;;;4190:58:144;4175:74;;4288:11;;4282:18;4320:15;;;4313:27;;;4401:19;;4147:15;;;4433:24;;;4523:21;;;;4568:1;;4491:2;4479:15;;;4582:282;4598:8;4593:3;4590:17;4582:282;;;4679:15;;4696:66;4675:88;4661:103;;4833:17;;;;4626:1;4617:11;;;;;4790:14;;;;4582:282;;;-1:-1:-1;4950:12:144;;;;4887:5;-1:-1:-1;;;4915:15:144;;;;4008:1;3999:11;3966:1006;;;-1:-1:-1;4989:6:144;;3363:1638;-1:-1:-1;;;;;;;;;3363:1638:144:o;5006:803::-;5168:4;5197:2;5237;5226:9;5222:18;5267:2;5256:9;5249:21;5290:6;5325;5319:13;5356:6;5348;5341:22;5394:2;5383:9;5379:18;5372:25;;5456:2;5446:6;5443:1;5439:14;5428:9;5424:30;5420:39;5406:53;;5494:2;5486:6;5482:15;5515:1;5525:255;5539:6;5536:1;5533:13;5525:255;;;5632:2;5628:7;5616:9;5608:6;5604:22;5600:36;5595:3;5588:49;5660:40;5693:6;5684;5678:13;5660:40;:::i;:::-;5650:50;-1:-1:-1;5758:12:144;;;;5723:15;;;;5561:1;5554:9;5525:255;;;-1:-1:-1;5797:6:144;;5006:803;-1:-1:-1;;;;;;;5006:803:144:o;6237:437::-;6316:1;6312:12;;;;6359;;;6380:61;;6434:4;6426:6;6422:17;6412:27;;6380:61;6487:2;6479:6;6476:14;6456:18;6453:38;6450:218;;-1:-1:-1;;;6521:1:144;6514:88;6625:4;6622:1;6615:15;6653:4;6650:1;6643:15;6450:218;;6237:437;;;:::o;6981:184::-;7051:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:52;;;7120:1;7117;7110:12;7072:52;-1:-1:-1;7143:16:144;;6981:184;-1:-1:-1;6981:184:144:o;7170:::-;-1:-1:-1;;;7219:1:144;7212:88;7319:4;7316:1;7309:15;7343:4;7340:1;7333:15;7485:545;7587:2;7582:3;7579:11;7576:448;;;7623:1;7648:5;7644:2;7637:17;7693:4;7689:2;7679:19;7763:2;7751:10;7747:19;7744:1;7740:27;7734:4;7730:38;7799:4;7787:10;7784:20;7781:47;;;-1:-1:-1;7822:4:144;7781:47;7877:2;7872:3;7868:12;7865:1;7861:20;7855:4;7851:31;7841:41;;7932:82;7950:2;7943:5;7940:13;7932:82;;;7995:17;;;7976:1;7965:13;7932:82;;;7936:3;;;7576:448;7485:545;;;:::o;8206:1352::-;8332:3;8326:10;8359:18;8351:6;8348:30;8345:56;;;8381:18;;:::i;:::-;8410:97;8500:6;8460:38;8492:4;8486:11;8460:38;:::i;:::-;8454:4;8410:97;:::i;:::-;8562:4;;8626:2;8615:14;;8643:1;8638:663;;;;9345:1;9362:6;9359:89;;;-1:-1:-1;9414:19:144;;;9408:26;9359:89;-1:-1:-1;;8163:1:144;8159:11;;;8155:24;8151:29;8141:40;8187:1;8183:11;;;8138:57;9461:81;;8608:944;;8638:663;7432:1;7425:14;;;7469:4;7456:18;;-1:-1:-1;;8674:20:144;;;8792:236;8806:7;8803:1;8800:14;8792:236;;;8895:19;;;8889:26;8874:42;;8987:27;;;;8955:1;8943:14;;;;8822:19;;8792:236;;;8796:3;9056:6;9047:7;9044:19;9041:201;;;9117:19;;;9111:26;-1:-1:-1;;9200:1:144;9196:14;;;9212:3;9192:24;9188:37;9184:42;9169:58;9154:74;;9041:201;-1:-1:-1;;;;;9288:1:144;9272:14;;;9268:22;9255:36;;-1:-1:-1;8206:1352:144:o;9563:282::-;9630:9;;;9651:11;;;9648:191;;;-1:-1:-1;;;9692:1:144;9685:88;9796:4;9793:1;9786:15;9824:4;9821:1;9814:15;9648:191;9563:282;;;;:::o;9850:979::-;10079:3;10108:1;10141:6;10135:13;10171:36;10197:9;10171:36;:::i;:::-;10226:1;10243:18;;;10270:133;;;;10417:1;10412:356;;;;10236:532;;10270:133;-1:-1:-1;;10303:24:144;;10291:37;;10376:14;;10369:22;10357:35;;10348:45;;;-1:-1:-1;10270:133:144;;10412:356;10443:6;10440:1;10433:17;10473:4;10518:2;10515:1;10505:16;10543:1;10557:165;10571:6;10568:1;10565:13;10557:165;;;10649:14;;10636:11;;;10629:35;10692:16;;;;10586:10;;10557:165;;;10561:3;;;10751:6;10746:3;10742:16;10735:23;;10236:532;-1:-1:-1;;10789:6:144;10777:19;;-1:-1:-1;;10821:1:144;10812:11;;9850:979;-1:-1:-1;;;9850:979:144:o;10834:291::-;11011:2;11000:9;10993:21;10974:4;11031:45;11072:2;11061:9;11057:18;11049:6;11031:45;:::i;:::-;11023:53;;11112:6;11107:2;11096:9;11092:18;11085:34;10834:291;;;;;:::o;11130:382::-;11337:6;11330:14;11323:22;11312:9;11305:41;11396:6;11389:14;11382:22;11377:2;11366:9;11362:18;11355:50;11441:2;11436;11425:9;11421:18;11414:30;11286:4;11461:45;11502:2;11491:9;11487:18;11479:6;11461:45;:::i;:::-;11453:53;11130:382;-1:-1:-1;;;;;11130:382:144:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setEnableGasLog(bool)":"2d0e6731","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFuzz_increasePowerCapped(uint256)":"5e8f4ff8","test_revertGetProtocolFee()":"5d53949a","test_stakeAndRegisterMember()":"0354ae60"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setEnableGasLog\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"testFuzz_increasePowerCapped\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_revertGetProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/PassportScorerTest.t.sol\":\"PassportScorerTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"pkg/contracts/test/PassportScorerTest.t.sol\":{\"keccak256\":\"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb\",\"dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H\"]},\"pkg/contracts/test/shared/GasHelpers2.sol\":{\"keccak256\":\"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c\",\"dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setEnableGasLog"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_increasePowerCapped"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_revertGetProtocolFee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_stakeAndRegisterMember"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/PassportScorerTest.t.sol":"PassportScorerTest"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"pkg/contracts/test/PassportScorerTest.t.sol":{"keccak256":"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127","urls":["bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb","dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H"],"license":"AGPL-3.0-or-later"},"pkg/contracts/test/shared/GasHelpers2.sol":{"keccak256":"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5","urls":["bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c","dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":6047,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13452_storage"},{"astId":6243,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8744,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8765,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8760_storage)"},{"astId":8769,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8773,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8776,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9534,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11571,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13452_storage"},{"astId":12439,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12442,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12445,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12448,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12451,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12454,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12458,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage"},{"astId":12462,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage"},{"astId":12466,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12436_storage)dyn_storage"},{"astId":18051,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":99855,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"checkpointLabel","offset":0,"slot":"31","type":"t_string_storage"},{"astId":99858,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"checkpointGasLeft","offset":0,"slot":"32","type":"t_uint256"},{"astId":99861,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_enableGasLog","offset":0,"slot":"33","type":"t_bool"},{"astId":89439,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"owner","offset":1,"slot":"33","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12436_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12436_storage"},"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12430_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13427_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13427_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13427_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8760_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8760_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8760_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8753,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8755,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8757,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8759,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13427_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13420,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13422,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13424,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13426,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12436_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12432,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12435,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12430_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12426,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12429,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13452_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13436,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))"},{"astId":13439,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13441,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13443,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13445,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13447,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13449,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13451,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/test/PassportScorerTest.t.sol","id":89530,"exportedSymbols":{"Errors":[3089],"GasHelpers2":[99922],"IERC20":[57117],"PassportScorerTest":[89529],"StdAssertions":[8720],"StdChains":[9502],"StdCheats":[12355],"StdInvariant":[12680],"StdStorage":[13452],"StdStyle":[16622],"StdUtils":[18000],"Test":[18052],"TestBase":[6051],"Vm":[21702],"console":[29766],"console2":[37891],"safeconsole":[52616],"stdError":[12421],"stdJson":[13272],"stdMath":[13414],"stdStorage":[15411],"stdToml":[17214]},"nodeType":"SourceUnit","src":"46:1366:138","nodes":[{"id":89422,"nodeType":"ImportDirective","src":"46:28:138","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":89530,"sourceUnit":18053,"symbolAliases":[],"unitAlias":""},{"id":89423,"nodeType":"ImportDirective","src":"75:31:138","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":89530,"sourceUnit":29767,"symbolAliases":[],"unitAlias":""},{"id":89424,"nodeType":"ImportDirective","src":"107:56:138","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":89530,"sourceUnit":57118,"symbolAliases":[],"unitAlias":""},{"id":89426,"nodeType":"ImportDirective","src":"204:67:138","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"allo-v2-contracts/core/libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":89530,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":89425,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"212:6:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89428,"nodeType":"ImportDirective","src":"290:53:138","nodes":[],"absolutePath":"pkg/contracts/test/shared/GasHelpers2.sol","file":"./shared/GasHelpers2.sol","nameLocation":"-1:-1:-1","scope":89530,"sourceUnit":99923,"symbolAliases":[{"foreign":{"id":89427,"name":"GasHelpers2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99922,"src":"298:11:138","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89529,"nodeType":"ContractDefinition","src":"393:1018:138","nodes":[{"id":89439,"nodeType":"VariableDeclaration","src":"456:33:138","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"464:5:138","scope":89529,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89435,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:138","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"6f776e6572","id":89437,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:7:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0","typeString":"literal_string \"owner\""},"value":"owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0","typeString":"literal_string \"owner\""}],"id":89436,"name":"makeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11324,"src":"472:8:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":89438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"472:17:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":89454,"nodeType":"FunctionDefinition","src":"496:86:138","nodes":[],"body":{"id":89453,"nodeType":"Block","src":"520:62:138","nodes":[],"statements":[{"expression":{"arguments":[{"id":89445,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89439,"src":"544:5:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":89442,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"530:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89444,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"533:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21483,"src":"530:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":89446,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"530:20:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89447,"nodeType":"ExpressionStatement","src":"530:20:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":89448,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"561:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"564:9:138","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21495,"src":"561:12:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":89451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:14:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89452,"nodeType":"ExpressionStatement","src":"561:14:138"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"505:5:138","parameters":{"id":89440,"nodeType":"ParameterList","parameters":[],"src":"510:2:138"},"returnParameters":{"id":89441,"nodeType":"ParameterList","parameters":[],"src":"520:0:138"},"scope":89529,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89465,"nodeType":"FunctionDefinition","src":"588:127:138","nodes":[],"body":{"id":89464,"nodeType":"Block","src":"634:81:138","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"63726561746550726f706f73616c","id":89458,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"662:16:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_5536a8091585df374904ce34bc5a018a066909f56bacdb9a6a98233f172cc216","typeString":"literal_string \"createProposal\""},"value":"createProposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5536a8091585df374904ce34bc5a018a066909f56bacdb9a6a98233f172cc216","typeString":"literal_string \"createProposal\""}],"id":89457,"name":"startMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99889,"src":"644:17:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":89459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"644:35:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89460,"nodeType":"ExpressionStatement","src":"644:35:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89461,"name":"stopMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99921,"src":"690:16:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":89462,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"690:18:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89463,"nodeType":"ExpressionStatement","src":"690:18:138"}]},"functionSelector":"0354ae60","implemented":true,"kind":"function","modifiers":[],"name":"test_stakeAndRegisterMember","nameLocation":"597:27:138","parameters":{"id":89455,"nodeType":"ParameterList","parameters":[],"src":"624:2:138"},"returnParameters":{"id":89456,"nodeType":"ParameterList","parameters":[],"src":"634:0:138"},"scope":89529,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89487,"nodeType":"FunctionDefinition","src":"721:382:138","nodes":[],"body":{"id":89486,"nodeType":"Block","src":"765:338:138","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"53657474696e672070726f746f636f6c20666565","id":89469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:22:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b1eb06a5e7d24dbfe074a9016d3a1bb8a91d2d663963f3b385e2b556b5e5927","typeString":"literal_string \"Setting protocol fee\""},"value":"Setting protocol fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1b1eb06a5e7d24dbfe074a9016d3a1bb8a91d2d663963f3b385e2b556b5e5927","typeString":"literal_string \"Setting protocol fee\""}],"id":89468,"name":"startMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99889,"src":"775:17:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":89470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:41:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89471,"nodeType":"ExpressionStatement","src":"775:41:138"},{"expression":{"arguments":[{"id":89475,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89439,"src":"840:5:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":89472,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"826:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21483,"src":"826:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":89476,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:20:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89477,"nodeType":"ExpressionStatement","src":"826:20:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":89478,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1054:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1057:9:138","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21495,"src":"1054:12:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":89481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:14:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89482,"nodeType":"ExpressionStatement","src":"1054:14:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89483,"name":"stopMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99921,"src":"1078:16:138","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":89484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:18:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89485,"nodeType":"ExpressionStatement","src":"1078:18:138"}]},"functionSelector":"5d53949a","implemented":true,"kind":"function","modifiers":[],"name":"test_revertGetProtocolFee","nameLocation":"730:25:138","parameters":{"id":89466,"nodeType":"ParameterList","parameters":[],"src":"755:2:138"},"returnParameters":{"id":89467,"nodeType":"ParameterList","parameters":[],"src":"765:0:138"},"scope":89529,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89528,"nodeType":"FunctionDefinition","src":"1109:300:138","nodes":[],"body":{"id":89527,"nodeType":"Block","src":"1175:234:138","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":89499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":89495,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89489,"src":"1195:11:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"id":89498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":89496,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1210:1:138","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":89497,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1214:1:138","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1210:5:138","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}},"src":"1195:20:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89492,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1185:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:138","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":20688,"src":"1185:9:138","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":89500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1185:31:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89501,"nodeType":"ExpressionStatement","src":"1185:31:138"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":89507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":89505,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89489,"src":"1236:11:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":89506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1251:1:138","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1236:16:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89502,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1226:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1229:6:138","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":20688,"src":"1226:9:138","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":89508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:27:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89509,"nodeType":"ExpressionStatement","src":"1226:27:138"},{"expression":{"arguments":[{"id":89513,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89439,"src":"1278:5:138","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":89510,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1264:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1267:10:138","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21483,"src":"1264:13:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":89514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1264:20:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89515,"nodeType":"ExpressionStatement","src":"1264:20:138"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":89516,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1294:2:138","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":89518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1297:9:138","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21495,"src":"1294:12:138","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":89519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:14:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89520,"nodeType":"ExpressionStatement","src":"1294:14:138"},{"expression":{"arguments":[{"hexValue":"74727565","id":89522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1375:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"74727565","id":89523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1381:4:138","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"506f77657220746f20323030","id":89524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1387:14:138","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7aa4dd979a20e0f95723dda937fe85124ff65a2025faedb3ec6946943171e3","typeString":"literal_string \"Power to 200\""},"value":"Power to 200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca7aa4dd979a20e0f95723dda937fe85124ff65a2025faedb3ec6946943171e3","typeString":"literal_string \"Power to 200\""}],"id":89521,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[6369,6387,6402,6420,6474,6492,6546,6564,6579,6597,6641,6659,6674,6692,6709,6729,6746,6766,6783,6803,6820,6840,6857,6877,6894,6914,6931,6951],"referencedDeclaration":6387,"src":"1366:8:138","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,bool,string memory) pure"}},"id":89525,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:36:138","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89526,"nodeType":"ExpressionStatement","src":"1366:36:138"}]},"functionSelector":"5e8f4ff8","implemented":true,"kind":"function","modifiers":[],"name":"testFuzz_increasePowerCapped","nameLocation":"1118:28:138","parameters":{"id":89490,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89489,"mutability":"mutable","name":"tokenAmount","nameLocation":"1155:11:138","nodeType":"VariableDeclaration","scope":89528,"src":"1147:19:138","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89488,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:138","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1146:21:138"},"returnParameters":{"id":89491,"nodeType":"ParameterList","parameters":[],"src":"1175:0:138"},"scope":89529,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":89429,"name":"Test","nameLocations":["424:4:138"],"nodeType":"IdentifierPath","referencedDeclaration":18052,"src":"424:4:138"},"id":89430,"nodeType":"InheritanceSpecifier","src":"424:4:138"},{"baseName":{"id":89431,"name":"Errors","nameLocations":["430:6:138"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"430:6:138"},"id":89432,"nodeType":"InheritanceSpecifier","src":"430:6:138"},{"baseName":{"id":89433,"name":"GasHelpers2","nameLocations":["438:11:138"],"nodeType":"IdentifierPath","referencedDeclaration":99922,"src":"438:11:138"},"id":89434,"nodeType":"InheritanceSpecifier","src":"438:11:138"}],"canonicalName":"PassportScorerTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[89529,99922,3089,18052,18000,12680,12355,11562,9502,8720,6051,6048],"name":"PassportScorerTest","nameLocation":"402:18:138","scope":89530,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088]}],"license":"AGPL-3.0-or-later"},"id":138} \ No newline at end of file diff --git a/pkg/contracts/out/Registry.sol/Registry.json b/pkg/contracts/out/Registry.sol/Registry.json index 65b9e8124..3c863d284 100644 --- a/pkg/contracts/out/Registry.sol/Registry.json +++ b/pkg/contracts/out/Registry.sol/Registry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"ALLO_OWNER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"acceptProfileOwnership","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"anchorToProfileId","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createProfile","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_name","type":"string","internalType":"string"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_owner","type":"address","internalType":"address"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getProfileByAnchor","inputs":[{"name":"_anchor","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getProfileById","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOrMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"profileIdToPendingOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profilesById","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateProfileMetadata","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileName","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfilePendingOwner","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"ProfileCreated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileMetadataUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"ProfileNameUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfilePendingOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pendingOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50612e96806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220a3b082108fec4b938fb56788ed62abaa33867b980c3b3bc10c55af06853f443064736f6c63430008130033a2646970667358221220b22be616182bb1d10dd4b3980d28cd0f7a1e9c78adc37b7289d58a8352c1eebf64736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220a3b082108fec4b938fb56788ed62abaa33867b980c3b3bc10c55af06853f443064736f6c63430008130033a2646970667358221220b22be616182bb1d10dd4b3980d28cd0f7a1e9c78adc37b7289d58a8352c1eebf64736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7472:131;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3029:213:12;;;;;;:::i;:::-;;:::i;:::-;;;2428:14:122;;2421:22;2403:41;;2391:2;2376:18;3029:213:12;2263:187:122;13857:156:2;;;;;;:::i;:::-;;:::i;4834:129:12:-;;;;;;:::i;:::-;4908:7;4934:12;;;:6;:12;;;;;:22;;;;4834:129;;;;3061:25:122;;;3049:2;3034:18;4834:129:12;2915:177:122;15016:745:2;;;;;;:::i;:::-;;:::i;:::-;;20847:318;;;;;;:::i;:::-;;:::i;5259:145:12:-;;;;;;:::i;:::-;;:::i;6368:214::-;;;;;;:::i;:::-;;:::i;13452:152:2:-;;;;;;:::i;:::-;;:::i;8781:1901::-;;;;;;:::i;:::-;;:::i;14336:382::-;;;;;;:::i;:::-;;:::i;5544:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;15962:658;;;;;;:::i;:::-;;:::i;5859:58::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5859:58:2;;;;;;-1:-1:-1;;;;;7424:55:122;;;7406:74;;7394:2;7379:18;5859:58:2;7260:226:122;12992:208:2;;;;;;:::i;:::-;;:::i;3329:145:12:-;;;;;;:::i;:::-;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;;;;3329:145;4412:75:9;;4445:42;4412:75;;2450:49:12;;2495:4;2450:49;;12309:415:2;;;;;;:::i;:::-;;:::i;6841:257::-;;;;;;:::i;:::-;;:::i;11210:830::-;;;;;;:::i;:::-;;:::i;5974:60::-;;6011:23;5974:60;;5684:147:12;;;;;;:::i;:::-;;:::i;7837:187:2:-;;;;;;:::i;:::-;;:::i;16837:500::-;;;;;;:::i;:::-;;:::i;5702:47::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;7472:131::-;7539:14;;:::i;:::-;7572:12;:24;7585:10;7572:24;;;;;;;;;;;7565:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7565:31:2;;;;-1:-1:-1;;;7565:31:2;;;;;;-1:-1:-1;;;;;7565:31:2;;;;;;;;;;;;;;;;;;;;;7472:131;-1:-1:-1;;7472:131:2:o;3029:213:12:-;3114:4;3137:58;;;3152:43;3137:58;;:98;;-1:-1:-1;1183:36:21;1168:51;;;;3199:36:12;3130:105;3029:213;-1:-1:-1;;3029:213:12:o;13857:156:2:-;13944:4;13967:39;13986:10;13998:7;13967:18;:39::i;:::-;13960:46;13857:156;-1:-1:-1;;;13857:156:2:o;15016:745::-;15131:23;15157:24;;;:12;:24;;;;;;;;15301:23;:35;;;;;;;-1:-1:-1;;;;;15301:35:2;15414:10;:22;;15410:54;;15445:19;;;;;;;;;;;;;;15410:54;15550:13;;;:24;;-1:-1:-1;;;;;15550:24:2;;;-1:-1:-1;;15550:24:2;;;;;;-1:-1:-1;15591:35:2;;;:23;:35;;;;;;;;;15584:42;;;;;;;;15740:13;;15708:46;;15740:13;;7406:74:122;;15591:35:2;;15708:46;;7379:18:122;15708:46:2;;;;;;;;15077:684;;15016:745;:::o;20847:318::-;6011:23;2928:16:12;2939:4;2928:10;:16::i;:::-;-1:-1:-1;;;;;20949:24:2;::::1;20945:51;;20982:14;;-1:-1:-1::0;;;20982:14:2::1;;;;;;;;;;;20945:51;21007:14;-1:-1:-1::0;;;;;21024:16:2;::::1;4445:42:9;21024:16:2;:81;;21067:38;::::0;;;;21099:4:::1;21067:38;::::0;::::1;7406:74:122::0;-1:-1:-1;;;;;21067:23:2;::::1;::::0;::::1;::::0;7379:18:122;;21067:38:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21024:81;;;21043:21;21024:81;21007:98;;21115:43;21131:6;21139:10;21151:6;21115:15;:43::i;:::-;20935:230;20847:318:::0;;;:::o;5259:145:12:-;4908:7;4934:12;;;:6;:12;;;;;:22;;;2928:16;2939:4;2928:10;:16::i;:::-;5372:25:::1;5383:4;5389:7;5372:10;:25::i;:::-;5259:145:::0;;;:::o;6368:214::-;-1:-1:-1;;;;;6463:23:12;;929:10:19;6463:23:12;6455:83;;;;-1:-1:-1;;;6455:83:12;;9935:2:122;6455:83:12;;;9917:21:122;9974:2;9954:18;;;9947:30;10013:34;9993:18;;;9986:62;10084:17;10064:18;;;10057:45;10119:19;;6455:83:12;;;;;;;;;6549:26;6561:4;6567:7;6549:11;:26::i;:::-;6368:214;;:::o;13452:152:2:-;13537:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13560:37;19963:156;8781:1901;8975:7;9060:17;9080:34;9099:6;9107;9080:18;:34::i;:::-;9215:1;9173:23;;;:12;:23;;;;;:30;;;9060:54;;-1:-1:-1;;;;;;9173:30:2;:44;9169:78;;9226:21;;;;;;;;;;;;;;9169:78;-1:-1:-1;;;;;9317:20:2;;9313:47;;9346:14;;-1:-1:-1;;;9346:14:2;;;;;;;;;;;9313:47;9447:22;9472:213;;;;;;;;9498:9;9472:213;;;;9528:6;9472:213;;;;9554:5;9472:213;;;;9583:9;9472:213;;;;9613:6;-1:-1:-1;;;;;9472:213:2;;;;;9641:33;9657:9;9668:5;9641:15;:33::i;:::-;-1:-1:-1;;;;;9472:213:2;;;9696:23;;;;:12;:23;;;;;;;;;:33;;;;;;;;;;;;;;;;9447:238;;-1:-1:-1;9447:238:2;;9696:33;;;;;;;;:::i;:::-;-1:-1:-1;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;9696:33:2;;;;;;;;;-1:-1:-1;;9696:33:2;;;-1:-1:-1;;;;;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:14;;;;9739:33;-1:-1:-1;9739:33:2;;;:17;:33;;;;;:45;;;9866:15;;9942:16;;;;;:40;;-1:-1:-1;;;;;;9962:20:2;;9972:10;9962:20;;9942:40;9938:92;;;10005:14;;-1:-1:-1;;;10005:14:2;;;;;;;;;;;9938:92;10045:9;10040:402;10060:12;10056:1;:16;10040:402;;;10089:14;10106:8;10115:1;10106:11;;;;;;;;:::i;:::-;;;;;;;10089:28;;10224:1;-1:-1:-1;;;;;10206:20:2;:6;-1:-1:-1;;;;;10206:20:2;;10202:47;;10235:14;;-1:-1:-1;;;10235:14:2;;;;;;;;;;;10202:47;10343:29;10354:9;10365:6;10343:10;:29::i;:::-;-1:-1:-1;10414:3:2;;10040:402;;;;10527:9;10512:103;10538:7;:13;;;10553:7;:12;;;10567:7;:16;;;10585:7;:13;;;10600:7;:14;;;10512:103;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10666:9:2;;8781:1901;-1:-1:-1;;;;;;;8781:1901:2:o;14336:382::-;14456:10;6416:34;6439:10;6416:22;:34::i;:::-;14530:35:::1;::::0;;;:23:::1;:35;::::0;;;;;;;;:51;;-1:-1:-1;;14530:51:2::1;-1:-1:-1::0;;;;;14530:51:2;::::1;::::0;;::::1;::::0;;;14658:53;;7406:74:122;;;14530:35:2;;14658:53:::1;::::0;7379:18:122;14658:53:2::1;7260:226:122::0;15962:658:2;16055:10;6416:34;6439:10;6416:22;:34::i;:::-;16100:15;;16077:20:::1;16211:403;16231:12;16227:1;:16;16211:403;;;16260:14;16277:8;16286:1;16277:11;;;;;;;;:::i;:::-;;;;;;;16260:28;;16395:1;-1:-1:-1::0;;;;;16377:20:2::1;:6;-1:-1:-1::0;;;;;16377:20:2::1;::::0;16373:47:::1;;16406:14;;-1:-1:-1::0;;;16406:14:2::1;;;;;;;;;;;16373:47;16514:30;16525:10;16537:6;16514:10;:30::i;:::-;-1:-1:-1::0;16586:3:2::1;;16211:403;;;;16067:553;15962:658:::0;;;:::o;12992:208::-;13087:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13110:83;;;;13153:40;13172:10;13184:8;13153:18;:40::i;12309:415::-;12429:10;6416:34;6439:10;6416:22;:34::i;:::-;12553:24:::1;::::0;;;:12:::1;:24;::::0;;;;;;;:45;;:33:::1;::::0;::::1;:45:::0;;;;;::::1;::::0;12589:9;;12553:33;:45;;;::::1;::::0;;::::1;:::i;:::-;;;;;12695:10;12672:45;12707:9;12672:45;;;;;;:::i;6841:257::-:0;4882:13:15;;6900:1:2;;4882:13:15;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:15;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:15;;13734:2:122;4873:99:15;;;13716:21:122;13773:2;13753:18;;;13746:30;13812:34;13792:18;;;13785:62;13883:16;13863:18;;;13856:44;13917:19;;4873:99:15;13532:410:122;4873:99:15;4982:12;:22;;-1:-1:-1;;5014:20:15;4982:22;;;5014:20;4982:22;5014:20;;;-1:-1:-1;;;;;6968:20:2;::::1;6964:47;;6997:14;;-1:-1:-1::0;;;6997:14:2::1;;;;;;;;;;;6964:47;7061:30;6011:23;7084:6;7061:10;:30::i;:::-;5071:5:15::0;5055:21;;-1:-1:-1;;5055:21:15;;;5091:20;;14119:4:122;14107:17;;14089:36;;5091:20:15;;14077:2:122;14062:18;5091:20:15;;;;;;;6841:257:2;;:::o;11210:830::-;11349:14;11320:10;6416:34;6439:10;6416:22;:34::i;:::-;11429::::1;11445:10;11457:5;11429:15;:34::i;:::-;11538:23;11564:24:::0;;;:12:::1;:24;::::0;;;;11420:43;;-1:-1:-1;11627:12:2::1;::::0;::::1;:20;11642:5:::0;11627:12;:20:::1;:::i;:::-;-1:-1:-1::0;11705:14:2::1;::::0;::::1;::::0;;-1:-1:-1;;;;;11705:14:2;;::::1;11731:1;11687:33:::0;;;:17:::1;:33;::::0;;;;;:46;;;11774:23;;-1:-1:-1;;11774:23:2::1;::::0;;::::1;::::0;;::::1;::::0;;;11807:25;;;;;;:38;;;11931:45;11807:38;;11931:45:::1;::::0;::::1;::::0;11962:5;;11774:23;;11931:45:::1;:::i;:::-;;;;;;;;12020:13;11210:830:::0;;;;;:::o;5684:147:12:-;4908:7;4934:12;;;:6;:12;;;;;:22;;;2928:16;2939:4;2928:10;:16::i;:::-;5798:26:::1;5810:4;5816:7;5798:11;:26::i;7837:187:2:-:0;7905:14;;:::i;:::-;-1:-1:-1;;;;;7951:26:2;;7931:17;7951:26;;;:17;:26;;;;;;;;;7994:23;;;:12;:23;;;;;;7987:30;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:23;;7987:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7987:30:2;;;;-1:-1:-1;;;7987:30:2;;;;;;-1:-1:-1;;;;;7987:30:2;;;;;;;;;;;;;;;;;;;;;7837:187;-1:-1:-1;;;7837:187:2:o;16837:500::-;16933:10;6416:34;6439:10;6416:22;:34::i;:::-;16978:15;;16955:20:::1;17094:237;17114:12;17110:1;:16;17094:237;;;17225:36;17237:10;17249:8;17258:1;17249:11;;;;;;;;:::i;:::-;;;;;;;17225;:36::i;:::-;17303:3;;17094:237;;5702:47:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5702:47:2;;;;-1:-1:-1;;;5702:47:2;;;;;;;;;;;-1:-1:-1;;;;;5702:47:2;;;;;;:::o;20464:146::-;20552:4;3438:12:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;20575:28:2;3329:145:12;3768:103;3834:30;3845:4;929:10:19;3834::12;:30::i;:::-;3768:103;:::o;6721:269:10:-;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;7917:233:12:-;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;7995:149;;8038:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8038:29:12;;;;;;;;;:36;;-1:-1:-1;;8038:36:12;8070:4;8038:36;;;8120:12;929:10:19;;850:96;8120:12:12;-1:-1:-1;;;;;8093:40:12;8111:7;-1:-1:-1;;;;;8093:40:12;8105:4;8093:40;;;;;;;;;;7917:233;;:::o;8321:234::-;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;8400:149;;;8474:5;8442:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8442:29:12;;;;;;;;;;:37;;-1:-1:-1;;8442:37:12;;;8498:40;929:10:19;;8442:12:12;;8498:40;;8474:5;8498:40;8321:234;;:::o;19465:159:2:-;19548:7;19601:6;19609;19584:32;;;;;;;;14638:19:122;;;14695:2;14691:15;-1:-1:-1;;14687:53:122;14682:2;14673:12;;14666:75;14766:2;14757:12;;14481:294;19584:32:2;;;;;;;;;;;;;19574:43;;;;;;19567:50;;19465:159;;;;:::o;18166:969::-;18250:14;18276:24;18314:10;18326:5;18303:29;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;18303:29:2;;;;;;;18380:37;;15250:25:122;;;18411:4:2;15291:18:122;;;15284:83;18380:37:2;;;;;;;;;15223:18:122;;;18380:37:2;;;;18303:29;;-1:-1:-1;18380:37:2;-1:-1:-1;;15223:18:122;18469:25:2;;;;;:::i;:::-;-1:-1:-1;;18469:25:2;;;;;;;;;;;;;;;;18452:67;;18469:25;18496:22;;18469:25;18452:67;;:::i;:::-;;;;-1:-1:-1;;18452:67:2;;;;;;;;;;18545:22;;18452:67;18545:22;;;;;;;18706:19;;;;;;18671:12;18654:72;;;16086:92:122;;;;-1:-1:-1;;18693:4:2;16215:2:122;16211:15;16207:53;16194:11;;;16187:74;16277:12;;;16270:28;;;16314:12;;;16307:28;;;;18452:67:2;;-1:-1:-1;18545:22:2;18530:12;;16351::122;;18654:72:2;;;;;;;;;;;;18644:83;;;;;;18636:92;;18578:161;;18860:4;18866:10;18886:4;18843:49;;;;;:::i;:::-;15250:25:122;;;-1:-1:-1;;;;;15311:55:122;15306:2;15291:18;;15284:83;15238:2;15223:18;18843:49:2;;;;;;;;;;;;;;;;;;18839:290;;19044:10;19008:18;-1:-1:-1;;;;;18993:45:2;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;18989:88;;19063:14;;;;;;;;;;;;;;18989:88;19100:18;19091:27;;18839:290;;;18949:7;-1:-1:-1;18839:290:2;18266:869;;;;;18166:969;;;;:::o;17659:152::-;20049:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:30:2;17770:10;20072:40;17735:69;;17790:14;;-1:-1:-1;;;17790:14:2;;;;;;;;;;;4152:501:12;3415:4;3438:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3438:29:12;;;;;;;;;;;;4235:412;;4423:39;4454:7;4423:30;:39::i;:::-;4533:49;4572:4;4579:2;4533:30;:49::i;:::-;4330:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4330:274:12;;;;;;;;;;-1:-1:-1;;;4278:358:12;;;;;;;:::i;2455:490:44:-;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;2473:149:20:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:20;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:20;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:20;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:20;;;;;;;;-1:-1:-1;2096:9:20;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:20;;;;;;;;-1:-1:-1;2207:1:20;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:20;;2228:55;;;;-1:-1:-1;;;2228:55:20;;18440:2:122;2228:55:20;;;18422:21:122;;;18459:18;;;18452:30;18518:34;18498:18;;;18491:62;18570:18;;2228:55:20;18238:356:122;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:180:122:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:122;;14:180;-1:-1:-1;14:180:122:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:122;423:16;;416:27;199:250::o;454:271::-;496:3;534:5;528:12;561:6;556:3;549:19;577:76;646:6;639:4;634:3;630:14;623:4;616:5;612:16;577:76;:::i;:::-;707:2;686:15;-1:-1:-1;;682:29:122;673:39;;;;714:4;669:50;;454:271;-1:-1:-1;;454:271:122:o;730:252::-;817:5;811:12;806:3;799:25;781:3;870:4;863:5;859:16;853:23;908:4;901;896:3;892:14;885:28;929:47;970:4;965:3;961:14;947:12;929:47;:::i;:::-;922:54;730:252;-1:-1:-1;;;;730:252:122:o;987:934::-;1166:2;1155:9;1148:21;1211:6;1205:13;1200:2;1189:9;1185:18;1178:41;1273:2;1265:6;1261:15;1255:22;1250:2;1239:9;1235:18;1228:50;1129:4;1325:2;1317:6;1313:15;1307:22;1365:4;1360:2;1349:9;1345:18;1338:32;1393:52;1440:3;1429:9;1425:19;1411:12;1393:52;:::i;:::-;1379:66;;1494:2;1486:6;1482:15;1476:22;1567:2;1563:7;1551:9;1543:6;1539:22;1535:36;1529:3;1518:9;1514:19;1507:65;1595:50;1638:6;1622:14;1595:50;:::i;:::-;1581:64;;;1694:3;1686:6;1682:16;1676:23;-1:-1:-1;;;;;1817:2:122;1801:14;1797:23;1791:3;1780:9;1776:19;1769:52;1888:2;1881:3;1873:6;1869:16;1863:23;1859:32;1852:4;1841:9;1837:20;1830:62;;;1909:6;1901:14;;;987:934;;;;:::o;1926:332::-;1984:6;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2142:66;2135:5;2131:78;2124:5;2121:89;2111:117;;2224:1;2221;2214:12;2455:196;2523:20;;-1:-1:-1;;;;;2572:54:122;;2562:65;;2552:93;;2641:1;2638;2631:12;2552:93;2455:196;;;:::o;2656:254::-;2724:6;2732;2785:2;2773:9;2764:7;2760:23;2756:32;2753:52;;;2801:1;2798;2791:12;2753:52;2837:9;2824:23;2814:33;;2866:38;2900:2;2889:9;2885:18;2866:38;:::i;:::-;2856:48;;2656:254;;;;;:::o;3097:260::-;3165:6;3173;3226:2;3214:9;3205:7;3201:23;3197:32;3194:52;;;3242:1;3239;3232:12;3194:52;3265:29;3284:9;3265:29;:::i;:::-;3255:39;;3313:38;3347:2;3336:9;3332:18;3313:38;:::i;3362:184::-;-1:-1:-1;;;3411:1:122;3404:88;3511:4;3508:1;3501:15;3535:4;3532:1;3525:15;3551:275;3622:2;3616:9;3687:2;3668:13;;-1:-1:-1;;3664:27:122;3652:40;;3722:18;3707:34;;3743:22;;;3704:62;3701:88;;;3769:18;;:::i;:::-;3805:2;3798:22;3551:275;;-1:-1:-1;3551:275:122:o;3831:531::-;3874:5;3927:3;3920:4;3912:6;3908:17;3904:27;3894:55;;3945:1;3942;3935:12;3894:55;3981:6;3968:20;4007:18;4003:2;4000:26;3997:52;;;4029:18;;:::i;:::-;4073:55;4116:2;4097:13;;-1:-1:-1;;4093:27:122;4122:4;4089:38;4073:55;:::i;:::-;4153:2;4144:7;4137:19;4199:3;4192:4;4187:2;4179:6;4175:15;4171:26;4168:35;4165:55;;;4216:1;4213;4206:12;4165:55;4281:2;4274:4;4266:6;4262:17;4255:4;4246:7;4242:18;4229:55;4329:1;4304:16;;;4322:4;4300:27;4293:38;;;;4308:7;3831:531;-1:-1:-1;;;3831:531:122:o;4367:610::-;4422:5;4470:4;4458:9;4453:3;4449:19;4445:30;4442:50;;;4488:1;4485;4478:12;4442:50;4521:4;4515:11;4565:4;4557:6;4553:17;4589:18;4657:6;4645:10;4642:22;4637:2;4625:10;4622:18;4619:46;4616:72;;;4668:18;;:::i;:::-;4710:10;4704:4;4697:24;4739:6;4730:15;;4782:9;4769:23;4761:6;4754:39;4844:2;4833:9;4829:18;4816:32;4802:46;;4871:2;4863:6;4860:14;4857:34;;;4887:1;4884;4877:12;4857:34;;4924:46;4966:3;4957:6;4946:9;4942:22;4924:46;:::i;:::-;4919:2;4911:6;4907:15;4900:71;;;4367:610;;;;:::o;4982:718::-;5036:5;5089:3;5082:4;5074:6;5070:17;5066:27;5056:55;;5107:1;5104;5097:12;5056:55;5143:6;5130:20;5169:4;5192:18;5188:2;5185:26;5182:52;;;5214:18;;:::i;:::-;5260:2;5257:1;5253:10;5283:28;5307:2;5303;5299:11;5283:28;:::i;:::-;5345:15;;;5415;;;5411:24;;;5376:12;;;;5447:15;;;5444:35;;;5475:1;5472;5465:12;5444:35;5511:2;5503:6;5499:15;5488:26;;5523:148;5539:6;5534:3;5531:15;5523:148;;;5605:23;5624:3;5605:23;:::i;:::-;5593:36;;5556:12;;;;5649;;;;5523:148;;;5689:5;4982:718;-1:-1:-1;;;;;;;4982:718:122:o;5705:938::-;5861:6;5869;5877;5885;5893;5946:3;5934:9;5925:7;5921:23;5917:33;5914:53;;;5963:1;5960;5953:12;5914:53;5999:9;5986:23;5976:33;;6060:2;6049:9;6045:18;6032:32;6083:18;6124:2;6116:6;6113:14;6110:34;;;6140:1;6137;6130:12;6110:34;6163:50;6205:7;6196:6;6185:9;6181:22;6163:50;:::i;:::-;6153:60;;6266:2;6255:9;6251:18;6238:32;6222:48;;6295:2;6285:8;6282:16;6279:36;;;6311:1;6308;6301:12;6279:36;6334:61;6387:7;6376:8;6365:9;6361:24;6334:61;:::i;:::-;6324:71;;6414:38;6448:2;6437:9;6433:18;6414:38;:::i;:::-;6404:48;;6505:3;6494:9;6490:19;6477:33;6461:49;;6535:2;6525:8;6522:16;6519:36;;;6551:1;6548;6541:12;6519:36;;6574:63;6629:7;6618:8;6607:9;6603:24;6574:63;:::i;:::-;6564:73;;;5705:938;;;;;;;;:::o;6648:186::-;6707:6;6760:2;6748:9;6739:7;6735:23;6731:32;6728:52;;;6776:1;6773;6766:12;6728:52;6799:29;6818:9;6799:29;:::i;6839:416::-;6932:6;6940;6993:2;6981:9;6972:7;6968:23;6964:32;6961:52;;;7009:1;7006;6999:12;6961:52;7045:9;7032:23;7022:33;;7106:2;7095:9;7091:18;7078:32;7133:18;7125:6;7122:30;7119:50;;;7165:1;7162;7155:12;7119:50;7188:61;7241:7;7232:6;7221:9;7217:22;7188:61;:::i;:::-;7178:71;;;6839:416;;;;;:::o;7491:415::-;7585:6;7593;7646:2;7634:9;7625:7;7621:23;7617:32;7614:52;;;7662:1;7659;7652:12;7614:52;7698:9;7685:23;7675:33;;7759:2;7748:9;7744:18;7731:32;7786:18;7778:6;7775:30;7772:50;;;7818:1;7815;7808:12;7772:50;7841:59;7892:7;7883:6;7872:9;7868:22;7841:59;:::i;7911:390::-;7989:6;7997;8050:2;8038:9;8029:7;8025:23;8021:32;8018:52;;;8066:1;8063;8056:12;8018:52;8102:9;8089:23;8079:33;;8163:2;8152:9;8148:18;8135:32;8190:18;8182:6;8179:30;8176:50;;;8222:1;8219;8212:12;8176:50;8245;8287:7;8278:6;8267:9;8263:22;8245:50;:::i;8306:791::-;8647:6;8636:9;8629:25;8690:6;8685:2;8674:9;8670:18;8663:34;8733:3;8728:2;8717:9;8713:18;8706:31;8610:4;8760:46;8801:3;8790:9;8786:19;8778:6;8760:46;:::i;:::-;8854:9;8846:6;8842:22;8837:2;8826:9;8822:18;8815:50;8882:42;8917:6;8909;8882:42;:::i;:::-;8874:50;;;-1:-1:-1;;;;;9034:2:122;9026:6;9022:15;9016:3;9005:9;9001:19;8994:44;9087:2;9079:6;9075:15;9069:3;9058:9;9054:19;9047:44;;8306:791;;;;;;;;;:::o;9102:437::-;9181:1;9177:12;;;;9224;;;9245:61;;9299:4;9291:6;9287:17;9277:27;;9245:61;9352:2;9344:6;9341:14;9321:18;9318:38;9315:218;;-1:-1:-1;;;9386:1:122;9379:88;9490:4;9487:1;9480:15;9518:4;9515:1;9508:15;9315:218;;9102:437;;;:::o;9544:184::-;9614:6;9667:2;9655:9;9646:7;9642:23;9638:32;9635:52;;;9683:1;9680;9673:12;9635:52;-1:-1:-1;9706:16:122;;9544:184;-1:-1:-1;9544:184:122:o;10275:545::-;10377:2;10372:3;10369:11;10366:448;;;10413:1;10438:5;10434:2;10427:17;10483:4;10479:2;10469:19;10553:2;10541:10;10537:19;10534:1;10530:27;10524:4;10520:38;10589:4;10577:10;10574:20;10571:47;;;-1:-1:-1;10612:4:122;10571:47;10667:2;10662:3;10658:12;10655:1;10651:20;10645:4;10641:31;10631:41;;10722:82;10740:2;10733:5;10730:13;10722:82;;;10785:17;;;10766:1;10755:13;10722:82;;;10726:3;;;10275:545;;;:::o;10996:1352::-;11122:3;11116:10;11149:18;11141:6;11138:30;11135:56;;;11171:18;;:::i;:::-;11200:97;11290:6;11250:38;11282:4;11276:11;11250:38;:::i;:::-;11244:4;11200:97;:::i;:::-;11352:4;;11416:2;11405:14;;11433:1;11428:663;;;;12135:1;12152:6;12149:89;;;-1:-1:-1;12204:19:122;;;12198:26;12149:89;-1:-1:-1;;10953:1:122;10949:11;;;10945:24;10941:29;10931:40;10977:1;10973:11;;;10928:57;12251:81;;11398:944;;11428:663;10222:1;10215:14;;;10259:4;10246:18;;-1:-1:-1;;11464:20:122;;;11582:236;11596:7;11593:1;11590:14;11582:236;;;11685:19;;;11679:26;11664:42;;11777:27;;;;11745:1;11733:14;;;;11612:19;;11582:236;;;11586:3;11846:6;11837:7;11834:19;11831:201;;;11907:19;;;11901:26;-1:-1:-1;;11990:1:122;11986:14;;;12002:3;11982:24;11978:37;11974:42;11959:58;11944:74;;11831:201;-1:-1:-1;;;;;12078:1:122;12062:14;;;12058:22;12045:36;;-1:-1:-1;10996:1352:122:o;12353:184::-;-1:-1:-1;;;12402:1:122;12395:88;12502:4;12499:1;12492:15;12526:4;12523:1;12516:15;12542:719;12855:6;12844:9;12837:25;12898:3;12893:2;12882:9;12878:18;12871:31;12818:4;12925:46;12966:3;12955:9;12951:19;12943:6;12925:46;:::i;:::-;13019:9;13011:6;13007:22;13002:2;12991:9;12987:18;12980:50;13047:42;13082:6;13074;13047:42;:::i;:::-;13039:50;;;-1:-1:-1;;;;;13198:2:122;13190:6;13186:15;13181:2;13170:9;13166:18;13159:43;13251:2;13243:6;13239:15;13233:3;13222:9;13218:19;13211:44;;12542:719;;;;;;;;:::o;13266:261::-;13447:2;13436:9;13429:21;13410:4;13467:54;13517:2;13506:9;13502:18;13494:6;13467:54;:::i;14136:340::-;14313:2;14302:9;14295:21;14276:4;14333:45;14374:2;14363:9;14359:18;14351:6;14333:45;:::i;:::-;14325:53;;-1:-1:-1;;;;;14418:6:122;14414:55;14409:2;14398:9;14394:18;14387:83;14136:340;;;;;:::o;14780:291::-;14957:6;14946:9;14939:25;15000:2;14995;14984:9;14980:18;14973:30;14920:4;15020:45;15061:2;15050:9;15046:18;15038:6;15020:45;:::i;15378:492::-;15553:3;15591:6;15585:13;15607:66;15666:6;15661:3;15654:4;15646:6;15642:17;15607:66;:::i;:::-;15736:13;;15695:16;;;;15758:70;15736:13;15695:16;15805:4;15793:17;;15758:70;:::i;:::-;15844:20;;15378:492;-1:-1:-1;;;;15378:492:122:o;16563:812::-;16974:25;16969:3;16962:38;16944:3;17029:6;17023:13;17045:75;17113:6;17108:2;17103:3;17099:12;17092:4;17084:6;17080:17;17045:75;:::i;:::-;17184:19;17179:2;17139:16;;;17171:11;;;17164:40;17229:13;;17251:76;17229:13;17313:2;17305:11;;17298:4;17286:17;;17251:76;:::i;:::-;17347:17;17366:2;17343:26;;16563:812;-1:-1:-1;;;;16563:812:122:o;17380:220::-;17529:2;17518:9;17511:21;17492:4;17549:45;17590:2;17579:9;17575:18;17567:6;17549:45;:::i;17605:184::-;-1:-1:-1;;;17654:1:122;17647:88;17754:4;17751:1;17744:15;17778:4;17775:1;17768:15;17794:168;17867:9;;;17898;;17915:15;;;17909:22;;17895:37;17885:71;;17936:18;;:::i;17967:125::-;18032:9;;;18053:10;;;18050:36;;;18066:18;;:::i;18097:136::-;18136:3;18164:5;18154:39;;18173:18;;:::i;:::-;-1:-1:-1;;;18209:18:122;;18097:136::o","linkReferences":{}},"methodIdentifiers":{"ALLO_OWNER()":"cfda7e0a","DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","acceptProfileOwnership(bytes32)":"2497f3c6","addMembers(bytes32,address[])":"5063f361","anchorToProfileId(address)":"4756487f","createProfile(uint256,string,(uint256,string),address,address[])":"3a92f65f","getProfileByAnchor(address)":"dd93da43","getProfileById(bytes32)":"0114cf0a","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","isMemberOfProfile(bytes32,address)":"0ec1fbac","isOwnerOfProfile(bytes32,address)":"39b86b8c","isOwnerOrMemberOfProfile(bytes32,address)":"5e8a7915","profileIdToPendingOwner(bytes32)":"50d005e0","profilesById(bytes32)":"ee888196","recoverFunds(address,address)":"24ae6a27","removeMembers(bytes32,address[])":"e0cf1e4c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateProfileMetadata(bytes32,(uint256,string))":"ac402839","updateProfileName(bytes32,string)":"cf189ff2","updateProfilePendingOwner(bytes32,address)":"3b66dacd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"ProfileMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileNameUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ProfilePendingOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ALLO_OWNER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"acceptProfileOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"anchorToProfileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"getProfileByAnchor\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"getProfileById\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isOwnerOrMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profileIdToPendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profilesById\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"removeMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updateProfileMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"updateProfileName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pendingOwner\",\"type\":\"address\"}],\"name\":\"updateProfilePendingOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"This contract is used to create and manage profiles for the Allo protocol It is also used to deploy the anchor contract for each profile which acts as a proxy for the profile and is used to receive funds and execute transactions on behalf of the profile The Registry is also used to add and remove members from a profile and update the profile 'Metadata'\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProfileCreated(bytes32,uint256,string,(uint256,string),address,address)\":{\"details\":\"Emitted when a profile is created. This will return your anchor address.\"},\"ProfileMetadataUpdated(bytes32,(uint256,string))\":{\"details\":\"Emitted when a profile's metadata is updated.\"},\"ProfileNameUpdated(bytes32,string,address)\":{\"details\":\"Emitted when a profile name is updated. This will update the anchor when the name is updated and return it.\"},\"ProfileOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile owner is updated.\"},\"ProfilePendingOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile pending owner is updated.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptProfileOwnership(bytes32)\":{\"details\":\"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\",\"params\":{\"_profileId\":\"The ID of the profile\"}},\"addMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_members\":\"The members to add\",\"_profileId\":\"The ID of the profile\"}},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"details\":\"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address\",\"params\":{\"_members\":\"The members of the profile (can be set only if msg.sender == _owner)\",\"_metadata\":\"The metadata of the profile\",\"_name\":\"The name of the profile\",\"_nonce\":\"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.\",\"_owner\":\"The owner of the profile\"},\"returns\":{\"_0\":\"The ID for the created profile\"}},\"getProfileByAnchor(address)\":{\"details\":\"Used when you have the 'anchor' address and want to retrieve the profile\",\"params\":{\"_anchor\":\"The anchor of the profile\"},\"returns\":{\"_0\":\"Profile details for the `_anchor`\"}},\"getProfileById(bytes32)\":{\"details\":\"Used when you have the 'profileId' and want to retrieve the profile\",\"params\":{\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"The Profile details for the `_profileId`\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\",\"params\":{\"_owner\":\"The owner of the contract\"}},\"isMemberOfProfile(bytes32,address)\":{\"params\":{\"_member\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is a member of the profile, otherwise 'false'\"}},\"isOwnerOfProfile(bytes32,address)\":{\"params\":{\"_owner\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner of the profile, otherwise 'false'\"}},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"params\":{\"_account\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner or member of the profile, otherwise 'false'\"}},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be the Allo owner\",\"params\":{\"_recipient\":\"The address of the recipient\",\"_token\":\"The address of the token to transfer\"}},\"removeMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the pending owner of the profile.\",\"params\":{\"_members\":\"The members to remove\",\"_profileId\":\"The ID of the profile\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_metadata\":\"The new 'Metadata' of the profile\",\"_profileId\":\"The ID of the profile\"}},\"updateProfileName(bytes32,string)\":{\"details\":\"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\",\"params\":{\"_name\":\"The new name of the profile\",\"_profileId\":\"The profileId of the profile\"},\"returns\":{\"anchor\":\"The new anchor\"}},\"updateProfilePendingOwner(bytes32,address)\":{\"details\":\"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\",\"params\":{\"_pendingOwner\":\"The new pending owner\",\"_profileId\":\"The ID of the profile\"}}},\"stateVariables\":{\"anchorToProfileId\":{\"details\":\"anchor -> Profile.id\"},\"profileIdToPendingOwner\":{\"details\":\"Profile.id -> pending owner\"},\"profilesById\":{\"details\":\"Profile.id -> Profile\"}},\"title\":\"Registry Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{\"ALLO_OWNER()\":{\"notice\":\"Allo Owner Role for fund recovery\"},\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"acceptProfileOwnership(bytes32)\":{\"notice\":\"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\"},\"addMembers(bytes32,address[])\":{\"notice\":\"Adds members to the profile\"},\"anchorToProfileId(address)\":{\"notice\":\"This maps the anchor address to the profile ID\"},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"notice\":\"Creates a new profile\"},\"getProfileByAnchor(address)\":{\"notice\":\"Retrieve profile by anchor\"},\"getProfileById(bytes32)\":{\"notice\":\"Retrieve profile by profileId\"},\"initialize(address)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is a member of the profile\"},\"isOwnerOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is an owner of the profile\"},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the address is an owner or member of the profile\"},\"profileIdToPendingOwner(bytes32)\":{\"notice\":\"This maps the profile ID to the pending owner\"},\"profilesById(bytes32)\":{\"notice\":\"This maps the profile ID to the profile details\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfers any fund balance in Allo to the recipient\"},\"removeMembers(bytes32,address[])\":{\"notice\":\"Removes members from the profile\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"notice\":\"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\"},\"updateProfileName(bytes32,string)\":{\"notice\":\"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event.\"},\"updateProfilePendingOwner(bytes32,address)\":{\"notice\":\"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\"}},\"notice\":\"Registry contract for creating and managing profiles\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Registry.sol\":\"Registry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709\",\"dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"ProfileMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileNameUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ProfileOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":false}],"type":"event","name":"ProfilePendingOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ALLO_OWNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"acceptProfileOwnership"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"anchorToProfileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"createProfile","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_anchor","type":"address"}],"stateMutability":"view","type":"function","name":"getProfileByAnchor","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getProfileById","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOrMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profileIdToPendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profilesById","outputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMembers"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updateProfileMetadata"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProfileName","outputs":[{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateProfilePendingOwner"}],"devdoc":{"kind":"dev","methods":{"acceptProfileOwnership(bytes32)":{"details":"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.","params":{"_profileId":"The ID of the profile"}},"addMembers(bytes32,address[])":{"details":"'msg.sender' must be the owner of the profile.","params":{"_members":"The members to add","_profileId":"The ID of the profile"}},"createProfile(uint256,string,(uint256,string),address,address[])":{"details":"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address","params":{"_members":"The members of the profile (can be set only if msg.sender == _owner)","_metadata":"The metadata of the profile","_name":"The name of the profile","_nonce":"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.","_owner":"The owner of the profile"},"returns":{"_0":"The ID for the created profile"}},"getProfileByAnchor(address)":{"details":"Used when you have the 'anchor' address and want to retrieve the profile","params":{"_anchor":"The anchor of the profile"},"returns":{"_0":"Profile details for the `_anchor`"}},"getProfileById(bytes32)":{"details":"Used when you have the 'profileId' and want to retrieve the profile","params":{"_profileId":"The ID of the profile"},"returns":{"_0":"The Profile details for the `_profileId`"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address)":{"details":"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'","params":{"_owner":"The owner of the contract"}},"isMemberOfProfile(bytes32,address)":{"params":{"_member":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is a member of the profile, otherwise 'false'"}},"isOwnerOfProfile(bytes32,address)":{"params":{"_owner":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner of the profile, otherwise 'false'"}},"isOwnerOrMemberOfProfile(bytes32,address)":{"params":{"_account":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner or member of the profile, otherwise 'false'"}},"recoverFunds(address,address)":{"details":"'msg.sender' must be the Allo owner","params":{"_recipient":"The address of the recipient","_token":"The address of the token to transfer"}},"removeMembers(bytes32,address[])":{"details":"'msg.sender' must be the pending owner of the profile.","params":{"_members":"The members to remove","_profileId":"The ID of the profile"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"updateProfileMetadata(bytes32,(uint256,string))":{"details":"'msg.sender' must be the owner of the profile.","params":{"_metadata":"The new 'Metadata' of the profile","_profileId":"The ID of the profile"}},"updateProfileName(bytes32,string)":{"details":"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.","params":{"_name":"The new name of the profile","_profileId":"The profileId of the profile"},"returns":{"anchor":"The new anchor"}},"updateProfilePendingOwner(bytes32,address)":{"details":"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.","params":{"_pendingOwner":"The new pending owner","_profileId":"The ID of the profile"}}},"version":1},"userdoc":{"kind":"user","methods":{"ALLO_OWNER()":{"notice":"Allo Owner Role for fund recovery"},"NATIVE()":{"notice":"Address of the native token"},"acceptProfileOwnership(bytes32)":{"notice":"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event."},"addMembers(bytes32,address[])":{"notice":"Adds members to the profile"},"anchorToProfileId(address)":{"notice":"This maps the anchor address to the profile ID"},"createProfile(uint256,string,(uint256,string),address,address[])":{"notice":"Creates a new profile"},"getProfileByAnchor(address)":{"notice":"Retrieve profile by anchor"},"getProfileById(bytes32)":{"notice":"Retrieve profile by profileId"},"initialize(address)":{"notice":"Initializes the contract after an upgrade"},"isMemberOfProfile(bytes32,address)":{"notice":"Checks if the given address is a member of the profile"},"isOwnerOfProfile(bytes32,address)":{"notice":"Checks if the given address is an owner of the profile"},"isOwnerOrMemberOfProfile(bytes32,address)":{"notice":"Checks if the address is an owner or member of the profile"},"profileIdToPendingOwner(bytes32)":{"notice":"This maps the profile ID to the pending owner"},"profilesById(bytes32)":{"notice":"This maps the profile ID to the profile details"},"recoverFunds(address,address)":{"notice":"Transfers any fund balance in Allo to the recipient"},"removeMembers(bytes32,address[])":{"notice":"Removes members from the profile"},"updateProfileMetadata(bytes32,(uint256,string))":{"notice":"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event."},"updateProfileName(bytes32,string)":{"notice":"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event."},"updateProfilePendingOwner(bytes32,address)":{"notice":"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Registry.sol":"Registry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831","urls":["bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709","dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"id":2} \ No newline at end of file +{"abi":[{"type":"function","name":"ALLO_OWNER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"acceptProfileOwnership","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"anchorToProfileId","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createProfile","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_name","type":"string","internalType":"string"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_owner","type":"address","internalType":"address"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getProfileByAnchor","inputs":[{"name":"_anchor","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getProfileById","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOrMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"profileIdToPendingOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profilesById","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateProfileMetadata","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileName","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfilePendingOwner","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"ProfileCreated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileMetadataUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"ProfileNameUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfilePendingOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pendingOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50612e96806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220cdc427901f944eab413c9e6a1953326681cbf57c8d1bb72ca90249af1605f34f64736f6c63430008130033a26469706673582212203329b083b1925ebe3ab387f775426e0d559db963680c045a28cf2ca908a06cb364736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220cdc427901f944eab413c9e6a1953326681cbf57c8d1bb72ca90249af1605f34f64736f6c63430008130033a26469706673582212203329b083b1925ebe3ab387f775426e0d559db963680c045a28cf2ca908a06cb364736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7472:131;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3050:213:45;;;;;;:::i;:::-;;:::i;:::-;;;2428:14:144;;2421:22;2403:41;;2391:2;2376:18;3050:213:45;2263:187:144;13857:156:2;;;;;;:::i;:::-;;:::i;4855:129:45:-;;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;;;;3061:25:144;;;3049:2;3034:18;4855:129:45;2915:177:144;15016:745:2;;;;;;:::i;:::-;;:::i;:::-;;20847:318;;;;;;:::i;:::-;;:::i;5280:145:45:-;;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;:::i;:::-;;:::i;13452:152:2:-;;;;;;:::i;:::-;;:::i;8781:1901::-;;;;;;:::i;:::-;;:::i;14336:382::-;;;;;;:::i;:::-;;:::i;5544:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;15962:658;;;;;;:::i;:::-;;:::i;5859:58::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5859:58:2;;;;;;-1:-1:-1;;;;;7424:55:144;;;7406:74;;7394:2;7379:18;5859:58:2;7260:226:144;12992:208:2;;;;;;:::i;:::-;;:::i;3350:145:45:-;;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;;;;3350:145;4412:75:9;;4445:42;4412:75;;2320:49:45;;2365:4;2320:49;;12309:415:2;;;;;;:::i;:::-;;:::i;6841:257::-;;;;;;:::i;:::-;;:::i;11210:830::-;;;;;;:::i;:::-;;:::i;5974:60::-;;6011:23;5974:60;;5705:147:45;;;;;;:::i;:::-;;:::i;7837:187:2:-;;;;;;:::i;:::-;;:::i;16837:500::-;;;;;;:::i;:::-;;:::i;5702:47::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;7472:131::-;7539:14;;:::i;:::-;7572:12;:24;7585:10;7572:24;;;;;;;;;;;7565:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7565:31:2;;;;-1:-1:-1;;;7565:31:2;;;;;;-1:-1:-1;;;;;7565:31:2;;;;;;;;;;;;;;;;;;;;;7472:131;-1:-1:-1;;7472:131:2:o;3050:213:45:-;3135:4;3158:58;;;3173:43;3158:58;;:98;;-1:-1:-1;1204:36:55;1189:51;;;;3220:36:45;3151:105;3050:213;-1:-1:-1;;3050:213:45:o;13857:156:2:-;13944:4;13967:39;13986:10;13998:7;13967:18;:39::i;:::-;13960:46;13857:156;-1:-1:-1;;;13857:156:2:o;15016:745::-;15131:23;15157:24;;;:12;:24;;;;;;;;15301:23;:35;;;;;;;-1:-1:-1;;;;;15301:35:2;15414:10;:22;;15410:54;;15445:19;;;;;;;;;;;;;;15410:54;15550:13;;;:24;;-1:-1:-1;;;;;15550:24:2;;;-1:-1:-1;;15550:24:2;;;;;;-1:-1:-1;15591:35:2;;;:23;:35;;;;;;;;;15584:42;;;;;;;;15740:13;;15708:46;;15740:13;;7406:74:144;;15591:35:2;;15708:46;;7379:18:144;15708:46:2;;;;;;;;15077:684;;15016:745;:::o;20847:318::-;6011:23;2798:16:45;2809:4;2798:10;:16::i;:::-;-1:-1:-1;;;;;20949:24:2;::::1;20945:51;;20982:14;;-1:-1:-1::0;;;20982:14:2::1;;;;;;;;;;;20945:51;21007:14;-1:-1:-1::0;;;;;21024:16:2;::::1;4445:42:9;21024:16:2;:81;;21067:38;::::0;;;;21099:4:::1;21067:38;::::0;::::1;7406:74:144::0;-1:-1:-1;;;;;21067:23:2;::::1;::::0;::::1;::::0;7379:18:144;;21067:38:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21024:81;;;21043:21;21024:81;21007:98;;21115:43;21131:6;21139:10;21151:6;21115:15;:43::i;:::-;20935:230;20847:318:::0;;;:::o;5280:145:45:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;:::-;5280:145:::0;;;:::o;6389:214::-;-1:-1:-1;;;;;6484:23:45;;965:10:53;6484:23:45;6476:83;;;;-1:-1:-1;;;6476:83:45;;9935:2:144;6476:83:45;;;9917:21:144;9974:2;9954:18;;;9947:30;10013:34;9993:18;;;9986:62;10084:17;10064:18;;;10057:45;10119:19;;6476:83:45;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;:::-;6389:214;;:::o;13452:152:2:-;13537:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13560:37;19963:156;8781:1901;8975:7;9060:17;9080:34;9099:6;9107;9080:18;:34::i;:::-;9215:1;9173:23;;;:12;:23;;;;;:30;;;9060:54;;-1:-1:-1;;;;;;9173:30:2;:44;9169:78;;9226:21;;;;;;;;;;;;;;9169:78;-1:-1:-1;;;;;9317:20:2;;9313:47;;9346:14;;-1:-1:-1;;;9346:14:2;;;;;;;;;;;9313:47;9447:22;9472:213;;;;;;;;9498:9;9472:213;;;;9528:6;9472:213;;;;9554:5;9472:213;;;;9583:9;9472:213;;;;9613:6;-1:-1:-1;;;;;9472:213:2;;;;;9641:33;9657:9;9668:5;9641:15;:33::i;:::-;-1:-1:-1;;;;;9472:213:2;;;9696:23;;;;:12;:23;;;;;;;;;:33;;;;;;;;;;;;;;;;9447:238;;-1:-1:-1;9447:238:2;;9696:33;;;;;;;;:::i;:::-;-1:-1:-1;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;9696:33:2;;;;;;;;;-1:-1:-1;;9696:33:2;;;-1:-1:-1;;;;;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:14;;;;9739:33;-1:-1:-1;9739:33:2;;;:17;:33;;;;;:45;;;9866:15;;9942:16;;;;;:40;;-1:-1:-1;;;;;;9962:20:2;;9972:10;9962:20;;9942:40;9938:92;;;10005:14;;-1:-1:-1;;;10005:14:2;;;;;;;;;;;9938:92;10045:9;10040:402;10060:12;10056:1;:16;10040:402;;;10089:14;10106:8;10115:1;10106:11;;;;;;;;:::i;:::-;;;;;;;10089:28;;10224:1;-1:-1:-1;;;;;10206:20:2;:6;-1:-1:-1;;;;;10206:20:2;;10202:47;;10235:14;;-1:-1:-1;;;10235:14:2;;;;;;;;;;;10202:47;10343:29;10354:9;10365:6;10343:10;:29::i;:::-;-1:-1:-1;10414:3:2;;10040:402;;;;10527:9;10512:103;10538:7;:13;;;10553:7;:12;;;10567:7;:16;;;10585:7;:13;;;10600:7;:14;;;10512:103;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10666:9:2;;8781:1901;-1:-1:-1;;;;;;;8781:1901:2:o;14336:382::-;14456:10;6416:34;6439:10;6416:22;:34::i;:::-;14530:35:::1;::::0;;;:23:::1;:35;::::0;;;;;;;;:51;;-1:-1:-1;;14530:51:2::1;-1:-1:-1::0;;;;;14530:51:2;::::1;::::0;;::::1;::::0;;;14658:53;;7406:74:144;;;14530:35:2;;14658:53:::1;::::0;7379:18:144;14658:53:2::1;7260:226:144::0;15962:658:2;16055:10;6416:34;6439:10;6416:22;:34::i;:::-;16100:15;;16077:20:::1;16211:403;16231:12;16227:1;:16;16211:403;;;16260:14;16277:8;16286:1;16277:11;;;;;;;;:::i;:::-;;;;;;;16260:28;;16395:1;-1:-1:-1::0;;;;;16377:20:2::1;:6;-1:-1:-1::0;;;;;16377:20:2::1;::::0;16373:47:::1;;16406:14;;-1:-1:-1::0;;;16406:14:2::1;;;;;;;;;;;16373:47;16514:30;16525:10;16537:6;16514:10;:30::i;:::-;-1:-1:-1::0;16586:3:2::1;;16211:403;;;;16067:553;15962:658:::0;;;:::o;12992:208::-;13087:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13110:83;;;;13153:40;13172:10;13184:8;13153:18;:40::i;12309:415::-;12429:10;6416:34;6439:10;6416:22;:34::i;:::-;12553:24:::1;::::0;;;:12:::1;:24;::::0;;;;;;;:45;;:33:::1;::::0;::::1;:45:::0;;;;;::::1;::::0;12589:9;;12553:33;:45;;;::::1;::::0;;::::1;:::i;:::-;;;;;12695:10;12672:45;12707:9;12672:45;;;;;;:::i;6841:257::-:0;4882:13:49;;6900:1:2;;4882:13:49;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:49;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:49;;13734:2:144;4873:99:49;;;13716:21:144;13773:2;13753:18;;;13746:30;13812:34;13792:18;;;13785:62;13883:16;13863:18;;;13856:44;13917:19;;4873:99:49;13532:410:144;4873:99:49;4982:12;:22;;-1:-1:-1;;5014:20:49;4982:22;;;5014:20;4982:22;5014:20;;;-1:-1:-1;;;;;6968:20:2;::::1;6964:47;;6997:14;;-1:-1:-1::0;;;6997:14:2::1;;;;;;;;;;;6964:47;7061:30;6011:23;7084:6;7061:10;:30::i;:::-;5071:5:49::0;5055:21;;-1:-1:-1;;5055:21:49;;;5091:20;;14119:4:144;14107:17;;14089:36;;5091:20:49;;14077:2:144;14062:18;5091:20:49;;;;;;;6841:257:2;;:::o;11210:830::-;11349:14;11320:10;6416:34;6439:10;6416:22;:34::i;:::-;11429::::1;11445:10;11457:5;11429:15;:34::i;:::-;11538:23;11564:24:::0;;;:12:::1;:24;::::0;;;;11420:43;;-1:-1:-1;11627:12:2::1;::::0;::::1;:20;11642:5:::0;11627:12;:20:::1;:::i;:::-;-1:-1:-1::0;11705:14:2::1;::::0;::::1;::::0;;-1:-1:-1;;;;;11705:14:2;;::::1;11731:1;11687:33:::0;;;:17:::1;:33;::::0;;;;;:46;;;11774:23;;-1:-1:-1;;11774:23:2::1;::::0;;::::1;::::0;;::::1;::::0;;;11807:25;;;;;;:38;;;11931:45;11807:38;;11931:45:::1;::::0;::::1;::::0;11962:5;;11774:23;;11931:45:::1;:::i;:::-;;;;;;;;12020:13;11210:830:::0;;;;;:::o;5705:147:45:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;7837:187:2:-:0;7905:14;;:::i;:::-;-1:-1:-1;;;;;7951:26:2;;7931:17;7951:26;;;:17;:26;;;;;;;;;7994:23;;;:12;:23;;;;;;7987:30;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:23;;7987:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7987:30:2;;;;-1:-1:-1;;;7987:30:2;;;;;;-1:-1:-1;;;;;7987:30:2;;;;;;;;;;;;;;;;;;;;;7837:187;-1:-1:-1;;;7837:187:2:o;16837:500::-;16933:10;6416:34;6439:10;6416:22;:34::i;:::-;16978:15;;16955:20:::1;17094:237;17114:12;17110:1;:16;17094:237;;;17225:36;17237:10;17249:8;17258:1;17249:11;;;;;;;;:::i;:::-;;;;;;;17225;:36::i;:::-;17303:3;;17094:237;;5702:47:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5702:47:2;;;;-1:-1:-1;;;5702:47:2;;;;;;;;;;;-1:-1:-1;;;;;5702:47:2;;;;;;:::o;20464:146::-;20552:4;3459:12:45;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;20575:28:2;3350:145:45;3789:103;3855:30;3866:4;965:10:53;3855::45;:30::i;:::-;3789:103;:::o;6721:269:10:-;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;7938:233:45:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:45;;;;;;;;;:36;;-1:-1:-1;;8059:36:45;8091:4;8059:36;;;8141:12;965:10:53;;886:96;8141:12:45;-1:-1:-1;;;;;8114:40:45;8132:7;-1:-1:-1;;;;;8114:40:45;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;8342:234::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:45;;;;;;;;;;:37;;-1:-1:-1;;8463:37:45;;;8519:40;965:10:53;;8463:12:45;;8519:40;;8495:5;8519:40;8342:234;;:::o;19465:159:2:-;19548:7;19601:6;19609;19584:32;;;;;;;;14638:19:144;;;14695:2;14691:15;-1:-1:-1;;14687:53:144;14682:2;14673:12;;14666:75;14766:2;14757:12;;14481:294;19584:32:2;;;;;;;;;;;;;19574:43;;;;;;19567:50;;19465:159;;;;:::o;18166:969::-;18250:14;18276:24;18314:10;18326:5;18303:29;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;18303:29:2;;;;;;;18380:37;;15250:25:144;;;18411:4:2;15291:18:144;;;15284:83;18380:37:2;;;;;;;;;15223:18:144;;;18380:37:2;;;;18303:29;;-1:-1:-1;18380:37:2;-1:-1:-1;;15223:18:144;18469:25:2;;;;;:::i;:::-;-1:-1:-1;;18469:25:2;;;;;;;;;;;;;;;;18452:67;;18469:25;18496:22;;18469:25;18452:67;;:::i;:::-;;;;-1:-1:-1;;18452:67:2;;;;;;;;;;18545:22;;18452:67;18545:22;;;;;;;18706:19;;;;;;18671:12;18654:72;;;16086:92:144;;;;-1:-1:-1;;18693:4:2;16215:2:144;16211:15;16207:53;16194:11;;;16187:74;16277:12;;;16270:28;;;16314:12;;;16307:28;;;;18452:67:2;;-1:-1:-1;18545:22:2;18530:12;;16351::144;;18654:72:2;;;;;;;;;;;;18644:83;;;;;;18636:92;;18578:161;;18860:4;18866:10;18886:4;18843:49;;;;;:::i;:::-;15250:25:144;;;-1:-1:-1;;;;;15311:55:144;15306:2;15291:18;;15284:83;15238:2;15223:18;18843:49:2;;;;;;;;;;;;;;;;;;18839:290;;19044:10;19008:18;-1:-1:-1;;;;;18993:45:2;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;18989:88;;19063:14;;;;;;;;;;;;;;18989:88;19100:18;19091:27;;18839:290;;;18949:7;-1:-1:-1;18839:290:2;18266:869;;;;;18166:969;;;;:::o;17659:152::-;20049:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:30:2;17770:10;20072:40;17735:69;;17790:14;;-1:-1:-1;;;17790:14:2;;;;;;;;;;;4173:501:45;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:45;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:45;;;;;;;;;;-1:-1:-1;;;4299:358:45;;;;;;;:::i;2455:490:14:-;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;2473:149:54:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:54;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:54;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:54;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:54;;;;;;;;-1:-1:-1;2096:9:54;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:54;;;;;;;;-1:-1:-1;2207:1:54;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:54;;2228:55;;;;-1:-1:-1;;;2228:55:54;;18440:2:144;2228:55:54;;;18422:21:144;;;18459:18;;;18452:30;18518:34;18498:18;;;18491:62;18570:18;;2228:55:54;18238:356:144;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:180:144:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:144;;14:180;-1:-1:-1;14:180:144:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:144;423:16;;416:27;199:250::o;454:271::-;496:3;534:5;528:12;561:6;556:3;549:19;577:76;646:6;639:4;634:3;630:14;623:4;616:5;612:16;577:76;:::i;:::-;707:2;686:15;-1:-1:-1;;682:29:144;673:39;;;;714:4;669:50;;454:271;-1:-1:-1;;454:271:144:o;730:252::-;817:5;811:12;806:3;799:25;781:3;870:4;863:5;859:16;853:23;908:4;901;896:3;892:14;885:28;929:47;970:4;965:3;961:14;947:12;929:47;:::i;:::-;922:54;730:252;-1:-1:-1;;;;730:252:144:o;987:934::-;1166:2;1155:9;1148:21;1211:6;1205:13;1200:2;1189:9;1185:18;1178:41;1273:2;1265:6;1261:15;1255:22;1250:2;1239:9;1235:18;1228:50;1129:4;1325:2;1317:6;1313:15;1307:22;1365:4;1360:2;1349:9;1345:18;1338:32;1393:52;1440:3;1429:9;1425:19;1411:12;1393:52;:::i;:::-;1379:66;;1494:2;1486:6;1482:15;1476:22;1567:2;1563:7;1551:9;1543:6;1539:22;1535:36;1529:3;1518:9;1514:19;1507:65;1595:50;1638:6;1622:14;1595:50;:::i;:::-;1581:64;;;1694:3;1686:6;1682:16;1676:23;-1:-1:-1;;;;;1817:2:144;1801:14;1797:23;1791:3;1780:9;1776:19;1769:52;1888:2;1881:3;1873:6;1869:16;1863:23;1859:32;1852:4;1841:9;1837:20;1830:62;;;1909:6;1901:14;;;987:934;;;;:::o;1926:332::-;1984:6;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2142:66;2135:5;2131:78;2124:5;2121:89;2111:117;;2224:1;2221;2214:12;2455:196;2523:20;;-1:-1:-1;;;;;2572:54:144;;2562:65;;2552:93;;2641:1;2638;2631:12;2552:93;2455:196;;;:::o;2656:254::-;2724:6;2732;2785:2;2773:9;2764:7;2760:23;2756:32;2753:52;;;2801:1;2798;2791:12;2753:52;2837:9;2824:23;2814:33;;2866:38;2900:2;2889:9;2885:18;2866:38;:::i;:::-;2856:48;;2656:254;;;;;:::o;3097:260::-;3165:6;3173;3226:2;3214:9;3205:7;3201:23;3197:32;3194:52;;;3242:1;3239;3232:12;3194:52;3265:29;3284:9;3265:29;:::i;:::-;3255:39;;3313:38;3347:2;3336:9;3332:18;3313:38;:::i;3362:184::-;-1:-1:-1;;;3411:1:144;3404:88;3511:4;3508:1;3501:15;3535:4;3532:1;3525:15;3551:275;3622:2;3616:9;3687:2;3668:13;;-1:-1:-1;;3664:27:144;3652:40;;3722:18;3707:34;;3743:22;;;3704:62;3701:88;;;3769:18;;:::i;:::-;3805:2;3798:22;3551:275;;-1:-1:-1;3551:275:144:o;3831:531::-;3874:5;3927:3;3920:4;3912:6;3908:17;3904:27;3894:55;;3945:1;3942;3935:12;3894:55;3981:6;3968:20;4007:18;4003:2;4000:26;3997:52;;;4029:18;;:::i;:::-;4073:55;4116:2;4097:13;;-1:-1:-1;;4093:27:144;4122:4;4089:38;4073:55;:::i;:::-;4153:2;4144:7;4137:19;4199:3;4192:4;4187:2;4179:6;4175:15;4171:26;4168:35;4165:55;;;4216:1;4213;4206:12;4165:55;4281:2;4274:4;4266:6;4262:17;4255:4;4246:7;4242:18;4229:55;4329:1;4304:16;;;4322:4;4300:27;4293:38;;;;4308:7;3831:531;-1:-1:-1;;;3831:531:144:o;4367:610::-;4422:5;4470:4;4458:9;4453:3;4449:19;4445:30;4442:50;;;4488:1;4485;4478:12;4442:50;4521:4;4515:11;4565:4;4557:6;4553:17;4589:18;4657:6;4645:10;4642:22;4637:2;4625:10;4622:18;4619:46;4616:72;;;4668:18;;:::i;:::-;4710:10;4704:4;4697:24;4739:6;4730:15;;4782:9;4769:23;4761:6;4754:39;4844:2;4833:9;4829:18;4816:32;4802:46;;4871:2;4863:6;4860:14;4857:34;;;4887:1;4884;4877:12;4857:34;;4924:46;4966:3;4957:6;4946:9;4942:22;4924:46;:::i;:::-;4919:2;4911:6;4907:15;4900:71;;;4367:610;;;;:::o;4982:718::-;5036:5;5089:3;5082:4;5074:6;5070:17;5066:27;5056:55;;5107:1;5104;5097:12;5056:55;5143:6;5130:20;5169:4;5192:18;5188:2;5185:26;5182:52;;;5214:18;;:::i;:::-;5260:2;5257:1;5253:10;5283:28;5307:2;5303;5299:11;5283:28;:::i;:::-;5345:15;;;5415;;;5411:24;;;5376:12;;;;5447:15;;;5444:35;;;5475:1;5472;5465:12;5444:35;5511:2;5503:6;5499:15;5488:26;;5523:148;5539:6;5534:3;5531:15;5523:148;;;5605:23;5624:3;5605:23;:::i;:::-;5593:36;;5556:12;;;;5649;;;;5523:148;;;5689:5;4982:718;-1:-1:-1;;;;;;;4982:718:144:o;5705:938::-;5861:6;5869;5877;5885;5893;5946:3;5934:9;5925:7;5921:23;5917:33;5914:53;;;5963:1;5960;5953:12;5914:53;5999:9;5986:23;5976:33;;6060:2;6049:9;6045:18;6032:32;6083:18;6124:2;6116:6;6113:14;6110:34;;;6140:1;6137;6130:12;6110:34;6163:50;6205:7;6196:6;6185:9;6181:22;6163:50;:::i;:::-;6153:60;;6266:2;6255:9;6251:18;6238:32;6222:48;;6295:2;6285:8;6282:16;6279:36;;;6311:1;6308;6301:12;6279:36;6334:61;6387:7;6376:8;6365:9;6361:24;6334:61;:::i;:::-;6324:71;;6414:38;6448:2;6437:9;6433:18;6414:38;:::i;:::-;6404:48;;6505:3;6494:9;6490:19;6477:33;6461:49;;6535:2;6525:8;6522:16;6519:36;;;6551:1;6548;6541:12;6519:36;;6574:63;6629:7;6618:8;6607:9;6603:24;6574:63;:::i;:::-;6564:73;;;5705:938;;;;;;;;:::o;6648:186::-;6707:6;6760:2;6748:9;6739:7;6735:23;6731:32;6728:52;;;6776:1;6773;6766:12;6728:52;6799:29;6818:9;6799:29;:::i;6839:416::-;6932:6;6940;6993:2;6981:9;6972:7;6968:23;6964:32;6961:52;;;7009:1;7006;6999:12;6961:52;7045:9;7032:23;7022:33;;7106:2;7095:9;7091:18;7078:32;7133:18;7125:6;7122:30;7119:50;;;7165:1;7162;7155:12;7119:50;7188:61;7241:7;7232:6;7221:9;7217:22;7188:61;:::i;:::-;7178:71;;;6839:416;;;;;:::o;7491:415::-;7585:6;7593;7646:2;7634:9;7625:7;7621:23;7617:32;7614:52;;;7662:1;7659;7652:12;7614:52;7698:9;7685:23;7675:33;;7759:2;7748:9;7744:18;7731:32;7786:18;7778:6;7775:30;7772:50;;;7818:1;7815;7808:12;7772:50;7841:59;7892:7;7883:6;7872:9;7868:22;7841:59;:::i;7911:390::-;7989:6;7997;8050:2;8038:9;8029:7;8025:23;8021:32;8018:52;;;8066:1;8063;8056:12;8018:52;8102:9;8089:23;8079:33;;8163:2;8152:9;8148:18;8135:32;8190:18;8182:6;8179:30;8176:50;;;8222:1;8219;8212:12;8176:50;8245;8287:7;8278:6;8267:9;8263:22;8245:50;:::i;8306:791::-;8647:6;8636:9;8629:25;8690:6;8685:2;8674:9;8670:18;8663:34;8733:3;8728:2;8717:9;8713:18;8706:31;8610:4;8760:46;8801:3;8790:9;8786:19;8778:6;8760:46;:::i;:::-;8854:9;8846:6;8842:22;8837:2;8826:9;8822:18;8815:50;8882:42;8917:6;8909;8882:42;:::i;:::-;8874:50;;;-1:-1:-1;;;;;9034:2:144;9026:6;9022:15;9016:3;9005:9;9001:19;8994:44;9087:2;9079:6;9075:15;9069:3;9058:9;9054:19;9047:44;;8306:791;;;;;;;;;:::o;9102:437::-;9181:1;9177:12;;;;9224;;;9245:61;;9299:4;9291:6;9287:17;9277:27;;9245:61;9352:2;9344:6;9341:14;9321:18;9318:38;9315:218;;-1:-1:-1;;;9386:1:144;9379:88;9490:4;9487:1;9480:15;9518:4;9515:1;9508:15;9315:218;;9102:437;;;:::o;9544:184::-;9614:6;9667:2;9655:9;9646:7;9642:23;9638:32;9635:52;;;9683:1;9680;9673:12;9635:52;-1:-1:-1;9706:16:144;;9544:184;-1:-1:-1;9544:184:144:o;10275:545::-;10377:2;10372:3;10369:11;10366:448;;;10413:1;10438:5;10434:2;10427:17;10483:4;10479:2;10469:19;10553:2;10541:10;10537:19;10534:1;10530:27;10524:4;10520:38;10589:4;10577:10;10574:20;10571:47;;;-1:-1:-1;10612:4:144;10571:47;10667:2;10662:3;10658:12;10655:1;10651:20;10645:4;10641:31;10631:41;;10722:82;10740:2;10733:5;10730:13;10722:82;;;10785:17;;;10766:1;10755:13;10722:82;;;10726:3;;;10275:545;;;:::o;10996:1352::-;11122:3;11116:10;11149:18;11141:6;11138:30;11135:56;;;11171:18;;:::i;:::-;11200:97;11290:6;11250:38;11282:4;11276:11;11250:38;:::i;:::-;11244:4;11200:97;:::i;:::-;11352:4;;11416:2;11405:14;;11433:1;11428:663;;;;12135:1;12152:6;12149:89;;;-1:-1:-1;12204:19:144;;;12198:26;12149:89;-1:-1:-1;;10953:1:144;10949:11;;;10945:24;10941:29;10931:40;10977:1;10973:11;;;10928:57;12251:81;;11398:944;;11428:663;10222:1;10215:14;;;10259:4;10246:18;;-1:-1:-1;;11464:20:144;;;11582:236;11596:7;11593:1;11590:14;11582:236;;;11685:19;;;11679:26;11664:42;;11777:27;;;;11745:1;11733:14;;;;11612:19;;11582:236;;;11586:3;11846:6;11837:7;11834:19;11831:201;;;11907:19;;;11901:26;-1:-1:-1;;11990:1:144;11986:14;;;12002:3;11982:24;11978:37;11974:42;11959:58;11944:74;;11831:201;-1:-1:-1;;;;;12078:1:144;12062:14;;;12058:22;12045:36;;-1:-1:-1;10996:1352:144:o;12353:184::-;-1:-1:-1;;;12402:1:144;12395:88;12502:4;12499:1;12492:15;12526:4;12523:1;12516:15;12542:719;12855:6;12844:9;12837:25;12898:3;12893:2;12882:9;12878:18;12871:31;12818:4;12925:46;12966:3;12955:9;12951:19;12943:6;12925:46;:::i;:::-;13019:9;13011:6;13007:22;13002:2;12991:9;12987:18;12980:50;13047:42;13082:6;13074;13047:42;:::i;:::-;13039:50;;;-1:-1:-1;;;;;13198:2:144;13190:6;13186:15;13181:2;13170:9;13166:18;13159:43;13251:2;13243:6;13239:15;13233:3;13222:9;13218:19;13211:44;;12542:719;;;;;;;;:::o;13266:261::-;13447:2;13436:9;13429:21;13410:4;13467:54;13517:2;13506:9;13502:18;13494:6;13467:54;:::i;14136:340::-;14313:2;14302:9;14295:21;14276:4;14333:45;14374:2;14363:9;14359:18;14351:6;14333:45;:::i;:::-;14325:53;;-1:-1:-1;;;;;14418:6:144;14414:55;14409:2;14398:9;14394:18;14387:83;14136:340;;;;;:::o;14780:291::-;14957:6;14946:9;14939:25;15000:2;14995;14984:9;14980:18;14973:30;14920:4;15020:45;15061:2;15050:9;15046:18;15038:6;15020:45;:::i;15378:492::-;15553:3;15591:6;15585:13;15607:66;15666:6;15661:3;15654:4;15646:6;15642:17;15607:66;:::i;:::-;15736:13;;15695:16;;;;15758:70;15736:13;15695:16;15805:4;15793:17;;15758:70;:::i;:::-;15844:20;;15378:492;-1:-1:-1;;;;15378:492:144:o;16563:812::-;16974:25;16969:3;16962:38;16944:3;17029:6;17023:13;17045:75;17113:6;17108:2;17103:3;17099:12;17092:4;17084:6;17080:17;17045:75;:::i;:::-;17184:19;17179:2;17139:16;;;17171:11;;;17164:40;17229:13;;17251:76;17229:13;17313:2;17305:11;;17298:4;17286:17;;17251:76;:::i;:::-;17347:17;17366:2;17343:26;;16563:812;-1:-1:-1;;;;16563:812:144:o;17380:220::-;17529:2;17518:9;17511:21;17492:4;17549:45;17590:2;17579:9;17575:18;17567:6;17549:45;:::i;17605:184::-;-1:-1:-1;;;17654:1:144;17647:88;17754:4;17751:1;17744:15;17778:4;17775:1;17768:15;17794:168;17867:9;;;17898;;17915:15;;;17909:22;;17895:37;17885:71;;17936:18;;:::i;17967:125::-;18032:9;;;18053:10;;;18050:36;;;18066:18;;:::i;18097:136::-;18136:3;18164:5;18154:39;;18173:18;;:::i;:::-;-1:-1:-1;;;18209:18:144;;18097:136::o","linkReferences":{}},"methodIdentifiers":{"ALLO_OWNER()":"cfda7e0a","DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","acceptProfileOwnership(bytes32)":"2497f3c6","addMembers(bytes32,address[])":"5063f361","anchorToProfileId(address)":"4756487f","createProfile(uint256,string,(uint256,string),address,address[])":"3a92f65f","getProfileByAnchor(address)":"dd93da43","getProfileById(bytes32)":"0114cf0a","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","isMemberOfProfile(bytes32,address)":"0ec1fbac","isOwnerOfProfile(bytes32,address)":"39b86b8c","isOwnerOrMemberOfProfile(bytes32,address)":"5e8a7915","profileIdToPendingOwner(bytes32)":"50d005e0","profilesById(bytes32)":"ee888196","recoverFunds(address,address)":"24ae6a27","removeMembers(bytes32,address[])":"e0cf1e4c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateProfileMetadata(bytes32,(uint256,string))":"ac402839","updateProfileName(bytes32,string)":"cf189ff2","updateProfilePendingOwner(bytes32,address)":"3b66dacd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"ProfileMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileNameUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ProfilePendingOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ALLO_OWNER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"acceptProfileOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"anchorToProfileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"getProfileByAnchor\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"getProfileById\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isOwnerOrMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profileIdToPendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profilesById\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"removeMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updateProfileMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"updateProfileName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pendingOwner\",\"type\":\"address\"}],\"name\":\"updateProfilePendingOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"This contract is used to create and manage profiles for the Allo protocol It is also used to deploy the anchor contract for each profile which acts as a proxy for the profile and is used to receive funds and execute transactions on behalf of the profile The Registry is also used to add and remove members from a profile and update the profile 'Metadata'\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProfileCreated(bytes32,uint256,string,(uint256,string),address,address)\":{\"details\":\"Emitted when a profile is created. This will return your anchor address.\"},\"ProfileMetadataUpdated(bytes32,(uint256,string))\":{\"details\":\"Emitted when a profile's metadata is updated.\"},\"ProfileNameUpdated(bytes32,string,address)\":{\"details\":\"Emitted when a profile name is updated. This will update the anchor when the name is updated and return it.\"},\"ProfileOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile owner is updated.\"},\"ProfilePendingOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile pending owner is updated.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"acceptProfileOwnership(bytes32)\":{\"details\":\"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\",\"params\":{\"_profileId\":\"The ID of the profile\"}},\"addMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_members\":\"The members to add\",\"_profileId\":\"The ID of the profile\"}},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"details\":\"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address\",\"params\":{\"_members\":\"The members of the profile (can be set only if msg.sender == _owner)\",\"_metadata\":\"The metadata of the profile\",\"_name\":\"The name of the profile\",\"_nonce\":\"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.\",\"_owner\":\"The owner of the profile\"},\"returns\":{\"_0\":\"The ID for the created profile\"}},\"getProfileByAnchor(address)\":{\"details\":\"Used when you have the 'anchor' address and want to retrieve the profile\",\"params\":{\"_anchor\":\"The anchor of the profile\"},\"returns\":{\"_0\":\"Profile details for the `_anchor`\"}},\"getProfileById(bytes32)\":{\"details\":\"Used when you have the 'profileId' and want to retrieve the profile\",\"params\":{\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"The Profile details for the `_profileId`\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"initialize(address)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\",\"params\":{\"_owner\":\"The owner of the contract\"}},\"isMemberOfProfile(bytes32,address)\":{\"params\":{\"_member\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is a member of the profile, otherwise 'false'\"}},\"isOwnerOfProfile(bytes32,address)\":{\"params\":{\"_owner\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner of the profile, otherwise 'false'\"}},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"params\":{\"_account\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner or member of the profile, otherwise 'false'\"}},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be the Allo owner\",\"params\":{\"_recipient\":\"The address of the recipient\",\"_token\":\"The address of the token to transfer\"}},\"removeMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the pending owner of the profile.\",\"params\":{\"_members\":\"The members to remove\",\"_profileId\":\"The ID of the profile\"}},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_metadata\":\"The new 'Metadata' of the profile\",\"_profileId\":\"The ID of the profile\"}},\"updateProfileName(bytes32,string)\":{\"details\":\"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\",\"params\":{\"_name\":\"The new name of the profile\",\"_profileId\":\"The profileId of the profile\"},\"returns\":{\"anchor\":\"The new anchor\"}},\"updateProfilePendingOwner(bytes32,address)\":{\"details\":\"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\",\"params\":{\"_pendingOwner\":\"The new pending owner\",\"_profileId\":\"The ID of the profile\"}}},\"stateVariables\":{\"anchorToProfileId\":{\"details\":\"anchor -> Profile.id\"},\"profileIdToPendingOwner\":{\"details\":\"Profile.id -> pending owner\"},\"profilesById\":{\"details\":\"Profile.id -> Profile\"}},\"title\":\"Registry Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{\"ALLO_OWNER()\":{\"notice\":\"Allo Owner Role for fund recovery\"},\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"acceptProfileOwnership(bytes32)\":{\"notice\":\"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\"},\"addMembers(bytes32,address[])\":{\"notice\":\"Adds members to the profile\"},\"anchorToProfileId(address)\":{\"notice\":\"This maps the anchor address to the profile ID\"},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"notice\":\"Creates a new profile\"},\"getProfileByAnchor(address)\":{\"notice\":\"Retrieve profile by anchor\"},\"getProfileById(bytes32)\":{\"notice\":\"Retrieve profile by profileId\"},\"initialize(address)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is a member of the profile\"},\"isOwnerOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is an owner of the profile\"},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the address is an owner or member of the profile\"},\"profileIdToPendingOwner(bytes32)\":{\"notice\":\"This maps the profile ID to the pending owner\"},\"profilesById(bytes32)\":{\"notice\":\"This maps the profile ID to the profile details\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfers any fund balance in Allo to the recipient\"},\"removeMembers(bytes32,address[])\":{\"notice\":\"Removes members from the profile\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"notice\":\"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\"},\"updateProfileName(bytes32,string)\":{\"notice\":\"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event.\"},\"updateProfilePendingOwner(bytes32,address)\":{\"notice\":\"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\"}},\"notice\":\"Registry contract for creating and managing profiles\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Registry.sol\":\"Registry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"ProfileMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileNameUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ProfileOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":false}],"type":"event","name":"ProfilePendingOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ALLO_OWNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"acceptProfileOwnership"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"anchorToProfileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"createProfile","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_anchor","type":"address"}],"stateMutability":"view","type":"function","name":"getProfileByAnchor","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getProfileById","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOrMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profileIdToPendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profilesById","outputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMembers"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updateProfileMetadata"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProfileName","outputs":[{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateProfilePendingOwner"}],"devdoc":{"kind":"dev","methods":{"acceptProfileOwnership(bytes32)":{"details":"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.","params":{"_profileId":"The ID of the profile"}},"addMembers(bytes32,address[])":{"details":"'msg.sender' must be the owner of the profile.","params":{"_members":"The members to add","_profileId":"The ID of the profile"}},"createProfile(uint256,string,(uint256,string),address,address[])":{"details":"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address","params":{"_members":"The members of the profile (can be set only if msg.sender == _owner)","_metadata":"The metadata of the profile","_name":"The name of the profile","_nonce":"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.","_owner":"The owner of the profile"},"returns":{"_0":"The ID for the created profile"}},"getProfileByAnchor(address)":{"details":"Used when you have the 'anchor' address and want to retrieve the profile","params":{"_anchor":"The anchor of the profile"},"returns":{"_0":"Profile details for the `_anchor`"}},"getProfileById(bytes32)":{"details":"Used when you have the 'profileId' and want to retrieve the profile","params":{"_profileId":"The ID of the profile"},"returns":{"_0":"The Profile details for the `_profileId`"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address)":{"details":"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'","params":{"_owner":"The owner of the contract"}},"isMemberOfProfile(bytes32,address)":{"params":{"_member":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is a member of the profile, otherwise 'false'"}},"isOwnerOfProfile(bytes32,address)":{"params":{"_owner":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner of the profile, otherwise 'false'"}},"isOwnerOrMemberOfProfile(bytes32,address)":{"params":{"_account":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner or member of the profile, otherwise 'false'"}},"recoverFunds(address,address)":{"details":"'msg.sender' must be the Allo owner","params":{"_recipient":"The address of the recipient","_token":"The address of the token to transfer"}},"removeMembers(bytes32,address[])":{"details":"'msg.sender' must be the pending owner of the profile.","params":{"_members":"The members to remove","_profileId":"The ID of the profile"}},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"updateProfileMetadata(bytes32,(uint256,string))":{"details":"'msg.sender' must be the owner of the profile.","params":{"_metadata":"The new 'Metadata' of the profile","_profileId":"The ID of the profile"}},"updateProfileName(bytes32,string)":{"details":"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.","params":{"_name":"The new name of the profile","_profileId":"The profileId of the profile"},"returns":{"anchor":"The new anchor"}},"updateProfilePendingOwner(bytes32,address)":{"details":"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.","params":{"_pendingOwner":"The new pending owner","_profileId":"The ID of the profile"}}},"version":1},"userdoc":{"kind":"user","methods":{"ALLO_OWNER()":{"notice":"Allo Owner Role for fund recovery"},"NATIVE()":{"notice":"Address of the native token"},"acceptProfileOwnership(bytes32)":{"notice":"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event."},"addMembers(bytes32,address[])":{"notice":"Adds members to the profile"},"anchorToProfileId(address)":{"notice":"This maps the anchor address to the profile ID"},"createProfile(uint256,string,(uint256,string),address,address[])":{"notice":"Creates a new profile"},"getProfileByAnchor(address)":{"notice":"Retrieve profile by anchor"},"getProfileById(bytes32)":{"notice":"Retrieve profile by profileId"},"initialize(address)":{"notice":"Initializes the contract after an upgrade"},"isMemberOfProfile(bytes32,address)":{"notice":"Checks if the given address is a member of the profile"},"isOwnerOfProfile(bytes32,address)":{"notice":"Checks if the given address is an owner of the profile"},"isOwnerOrMemberOfProfile(bytes32,address)":{"notice":"Checks if the address is an owner or member of the profile"},"profileIdToPendingOwner(bytes32)":{"notice":"This maps the profile ID to the pending owner"},"profilesById(bytes32)":{"notice":"This maps the profile ID to the profile details"},"recoverFunds(address,address)":{"notice":"Transfers any fund balance in Allo to the recipient"},"removeMembers(bytes32,address[])":{"notice":"Removes members from the profile"},"updateProfileMetadata(bytes32,(uint256,string))":{"notice":"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event."},"updateProfileName(bytes32,string)":{"notice":"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event."},"updateProfilePendingOwner(bytes32,address)":{"notice":"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Registry.sol":"Registry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":53246,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53249,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53951,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":54225,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":52645,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)52640_storage)"},{"astId":52952,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1525,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"anchorToProfileId","offset":0,"slot":"151","type":"t_mapping(t_address,t_bytes32)"},{"astId":1531,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"profilesById","offset":0,"slot":"152","type":"t_mapping(t_bytes32,t_struct(Profile)2629_storage)"},{"astId":1536,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"profileIdToPendingOwner","offset":0,"slot":"153","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_bytes32)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_bytes32,t_struct(Profile)2629_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct IRegistry.Profile)","numberOfBytes":"32","value":"t_struct(Profile)2629_storage"},"t_mapping(t_bytes32,t_struct(RoleData)52640_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52640_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(Profile)2629_storage":{"encoding":"inplace","label":"struct IRegistry.Profile","numberOfBytes":"224","members":[{"astId":2617,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"id","offset":0,"slot":"0","type":"t_bytes32"},{"astId":2619,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":2621,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"name","offset":0,"slot":"2","type":"t_string_storage"},{"astId":2624,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"metadata","offset":0,"slot":"3","type":"t_struct(Metadata)3098_storage"},{"astId":2626,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"owner","offset":0,"slot":"5","type":"t_address"},{"astId":2628,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"anchor","offset":0,"slot":"6","type":"t_address"}]},"t_struct(RoleData)52640_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52637,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52639,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","id":2296,"exportedSymbols":{"AccessControlUpgradeable":[52953],"AddressUpgradeable":[53901],"Anchor":[1492],"ContextUpgradeable":[53952],"ERC165Upgradeable":[54226],"ERC20":[4491],"Errors":[3089],"IAccessControlUpgradeable":[53026],"IERC165Upgradeable":[54238],"IRegistry":[2802],"Initializable":[53408],"MathUpgradeable":[55104],"Metadata":[3098],"Native":[3106],"Registry":[2295],"SafeTransferLib":[4649],"SignedMathUpgradeable":[55209],"StringsUpgradeable":[54181],"Transfer":[3317]},"nodeType":"SourceUnit","src":"42:21126:2","nodes":[{"id":1494,"nodeType":"PragmaDirective","src":"42:23:2","nodes":[],"literals":["solidity","0.8",".19"]},{"id":1495,"nodeType":"ImportDirective","src":"89:90:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":52954,"symbolAliases":[],"unitAlias":""},{"id":1496,"nodeType":"ImportDirective","src":"180:84:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":53409,"symbolAliases":[],"unitAlias":""},{"id":1498,"nodeType":"ImportDirective","src":"265:50:2","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":1497,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"273:5:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1499,"nodeType":"ImportDirective","src":"330:36:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":2803,"symbolAliases":[],"unitAlias":""},{"id":1501,"nodeType":"ImportDirective","src":"389:36:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Anchor.sol","file":"./Anchor.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":1493,"symbolAliases":[{"foreign":{"id":1500,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"397:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1503,"nodeType":"ImportDirective","src":"426:46:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"./libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":1502,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"434:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1505,"nodeType":"ImportDirective","src":"473:50:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"./libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":1504,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"481:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1506,"nodeType":"ImportDirective","src":"524:32:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"./libraries/Native.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3107,"symbolAliases":[],"unitAlias":""},{"id":1507,"nodeType":"ImportDirective","src":"557:34:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Transfer.sol","file":"./libraries/Transfer.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3318,"symbolAliases":[],"unitAlias":""},{"id":2295,"nodeType":"ContractDefinition","src":"5237:15930:2","nodes":[{"id":1525,"nodeType":"VariableDeclaration","src":"5544:52:2","nodes":[],"constant":false,"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"5447:92:2","text":"@notice This maps the anchor address to the profile ID\n @dev anchor -> Profile.id"},"functionSelector":"4756487f","mutability":"mutable","name":"anchorToProfileId","nameLocation":"5579:17:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":1524,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1522,"name":"address","nodeType":"ElementaryTypeName","src":"5552:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5544:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5563:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"id":1531,"nodeType":"VariableDeclaration","src":"5702:47:2","nodes":[],"constant":false,"documentation":{"id":1526,"nodeType":"StructuredDocumentation","src":"5603:94:2","text":"@notice This maps the profile ID to the profile details\n @dev Profile.id -> Profile"},"functionSelector":"ee888196","mutability":"mutable","name":"profilesById","nameLocation":"5737:12:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile)"},"typeName":{"id":1530,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5710:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5702:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"Profile","nameLocations":["5721:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"5721:7:2"},"referencedDeclaration":2629,"src":"5721:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}}},"visibility":"public"},{"id":1536,"nodeType":"VariableDeclaration","src":"5859:58:2","nodes":[],"constant":false,"documentation":{"id":1532,"nodeType":"StructuredDocumentation","src":"5756:98:2","text":"@notice This maps the profile ID to the pending owner\n @dev Profile.id -> pending owner"},"functionSelector":"50d005e0","mutability":"mutable","name":"profileIdToPendingOwner","nameLocation":"5894:23:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":1535,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5867:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5859:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1534,"name":"address","nodeType":"ElementaryTypeName","src":"5878:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"id":1542,"nodeType":"VariableDeclaration","src":"5974:60:2","nodes":[],"constant":true,"documentation":{"id":1537,"nodeType":"StructuredDocumentation","src":"5924:45:2","text":"@notice Allo Owner Role for fund recovery"},"functionSelector":"cfda7e0a","mutability":"constant","name":"ALLO_OWNER","nameLocation":"5998:10:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5974:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"414c4c4f5f4f574e4552","id":1540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6021:12:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e6882747","typeString":"literal_string \"ALLO_OWNER\""},"value":"ALLO_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e6882747","typeString":"literal_string \"ALLO_OWNER\""}],"id":1539,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6011:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6011:23:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":1553,"nodeType":"ModifierDefinition","src":"6360:108:2","nodes":[],"body":{"id":1552,"nodeType":"Block","src":"6406:62:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1548,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1545,"src":"6439:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1547,"name":"_checkOnlyProfileOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"6416:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":1549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6416:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1550,"nodeType":"ExpressionStatement","src":"6416:34:2"},{"id":1551,"nodeType":"PlaceholderStatement","src":"6460:1:2"}]},"documentation":{"id":1543,"nodeType":"StructuredDocumentation","src":"6177:178:2","text":"@notice Checks if the caller is the profile owner\n @dev Reverts `UNAUTHORIZED()` if the caller is not the profile owner\n @param _profileId The ID of the profile"},"name":"onlyProfileOwner","nameLocation":"6369:16:2","parameters":{"id":1546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1545,"mutability":"mutable","name":"_profileId","nameLocation":"6394:10:2","nodeType":"VariableDeclaration","scope":1553,"src":"6386:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6386:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6385:20:2"},"virtual":false,"visibility":"internal"},{"id":1578,"nodeType":"FunctionDefinition","src":"6841:257:2","nodes":[],"body":{"id":1577,"nodeType":"Block","src":"6903:195:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1562,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"6968:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6986:1:2","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":1564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6978:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1563,"name":"address","nodeType":"ElementaryTypeName","src":"6978:7:2","typeDescriptions":{}}},"id":1566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6978:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6968:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1571,"nodeType":"IfStatement","src":"6964:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1568,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"6997:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6997:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1570,"nodeType":"RevertStatement","src":"6990:21:2"}},{"expression":{"arguments":[{"id":1573,"name":"ALLO_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"7072:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1574,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"7084:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1572,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"7061:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7061:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1576,"nodeType":"ExpressionStatement","src":"7061:30:2"}]},"documentation":{"id":1554,"nodeType":"StructuredDocumentation","src":"6608:228:2","text":"@notice Initializes the contract after an upgrade\n @dev During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\n @param _owner The owner of the contract"},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"31","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6900:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":1560,"kind":"modifierInvocation","modifierName":{"id":1558,"name":"reinitializer","nameLocations":["6886:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":53343,"src":"6886:13:2"},"nodeType":"ModifierInvocation","src":"6886:16:2"}],"name":"initialize","nameLocation":"6850:10:2","parameters":{"id":1557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"_owner","nameLocation":"6869:6:2","nodeType":"VariableDeclaration","scope":1578,"src":"6861:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1555,"name":"address","nodeType":"ElementaryTypeName","src":"6861:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6860:16:2"},"returnParameters":{"id":1561,"nodeType":"ParameterList","parameters":[],"src":"6903:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1592,"nodeType":"FunctionDefinition","src":"7472:131:2","nodes":[],"body":{"id":1591,"nodeType":"Block","src":"7555:48:2","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1587,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7572:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1589,"indexExpression":{"id":1588,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"7585:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7572:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"functionReturnParameters":1586,"id":1590,"nodeType":"Return","src":"7565:31:2"}]},"baseFunctions":[2685],"documentation":{"id":1579,"nodeType":"StructuredDocumentation","src":"7240:227:2","text":"@notice Retrieve profile by profileId\n @dev Used when you have the 'profileId' and want to retrieve the profile\n @param _profileId The ID of the profile\n @return The Profile details for the `_profileId`"},"functionSelector":"0114cf0a","implemented":true,"kind":"function","modifiers":[],"name":"getProfileById","nameLocation":"7481:14:2","parameters":{"id":1582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1581,"mutability":"mutable","name":"_profileId","nameLocation":"7504:10:2","nodeType":"VariableDeclaration","scope":1592,"src":"7496:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7496:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7495:20:2"},"returnParameters":{"id":1586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1592,"src":"7539:14:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1584,"nodeType":"UserDefinedTypeName","pathNode":{"id":1583,"name":"Profile","nameLocations":["7539:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7539:7:2"},"referencedDeclaration":2629,"src":"7539:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7538:16:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1612,"nodeType":"FunctionDefinition","src":"7837:187:2","nodes":[],"body":{"id":1611,"nodeType":"Block","src":"7921:103:2","nodes":[],"statements":[{"assignments":[1602],"declarations":[{"constant":false,"id":1602,"mutability":"mutable","name":"profileId","nameLocation":"7939:9:2","nodeType":"VariableDeclaration","scope":1611,"src":"7931:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7931:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1606,"initialValue":{"baseExpression":{"id":1603,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7951:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1605,"indexExpression":{"id":1604,"name":"_anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"7969:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7951:26:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7931:46:2"},{"expression":{"baseExpression":{"id":1607,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7994:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1609,"indexExpression":{"id":1608,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"8007:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7994:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"functionReturnParameters":1600,"id":1610,"nodeType":"Return","src":"7987:30:2"}]},"baseFunctions":[2694],"documentation":{"id":1593,"nodeType":"StructuredDocumentation","src":"7609:223:2","text":"@notice Retrieve profile by anchor\n @dev Used when you have the 'anchor' address and want to retrieve the profile\n @param _anchor The anchor of the profile\n @return Profile details for the `_anchor`"},"functionSelector":"dd93da43","implemented":true,"kind":"function","modifiers":[],"name":"getProfileByAnchor","nameLocation":"7846:18:2","parameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1595,"mutability":"mutable","name":"_anchor","nameLocation":"7873:7:2","nodeType":"VariableDeclaration","scope":1612,"src":"7865:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1594,"name":"address","nodeType":"ElementaryTypeName","src":"7865:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7864:17:2"},"returnParameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"7905:14:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1598,"nodeType":"UserDefinedTypeName","pathNode":{"id":1597,"name":"Profile","nameLocations":["7905:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7905:7:2"},"referencedDeclaration":2629,"src":"7905:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7904:16:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1756,"nodeType":"FunctionDefinition","src":"8781:1901:2","nodes":[],"body":{"id":1755,"nodeType":"Block","src":"8984:1698:2","nodes":[],"statements":[{"assignments":[1631],"declarations":[{"constant":false,"id":1631,"mutability":"mutable","name":"profileId","nameLocation":"9068:9:2","nodeType":"VariableDeclaration","scope":1755,"src":"9060:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9060:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1636,"initialValue":{"arguments":[{"id":1633,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9099:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1634,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9107:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1632,"name":"_generateProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2211,"src":"9080:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,address) pure returns (bytes32)"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9080:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9060:54:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1637,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"9173:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1639,"indexExpression":{"id":1638,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9186:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9173:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9197:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"9173:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9215:1:2","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":1642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9207:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1641,"name":"address","nodeType":"ElementaryTypeName","src":"9207:7:2","typeDescriptions":{}}},"id":1644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9173:44:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1649,"nodeType":"IfStatement","src":"9169:78:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1646,"name":"NONCE_NOT_AVAILABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3026,"src":"9226:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9226:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1648,"nodeType":"RevertStatement","src":"9219:28:2"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1650,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9317:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9335:1:2","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":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9327:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1651,"name":"address","nodeType":"ElementaryTypeName","src":"9327:7:2","typeDescriptions":{}}},"id":1654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9327:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9317:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1659,"nodeType":"IfStatement","src":"9313:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1656,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"9346:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9346:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1658,"nodeType":"RevertStatement","src":"9339:21:2"}},{"assignments":[1662],"declarations":[{"constant":false,"id":1662,"mutability":"mutable","name":"profile","nameLocation":"9462:7:2","nodeType":"VariableDeclaration","scope":1755,"src":"9447:22:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1661,"nodeType":"UserDefinedTypeName","pathNode":{"id":1660,"name":"Profile","nameLocations":["9447:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"9447:7:2"},"referencedDeclaration":2629,"src":"9447:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1674,"initialValue":{"arguments":[{"id":1664,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9498:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1665,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9528:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1666,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"9554:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1667,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"9583:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":1668,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9613:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1670,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9657:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1671,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"9668:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1669,"name":"_generateAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"9641:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,string memory) returns (address)"}},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:33:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1663,"name":"Profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"9472:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Profile_$2629_storage_ptr_$","typeString":"type(struct IRegistry.Profile storage pointer)"}},"id":1673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9494:2:2","9521:5:2","9548:4:2","9573:8:2","9606:5:2","9633:6:2"],"names":["id","nonce","name","metadata","owner","anchor"],"nodeType":"FunctionCall","src":"9472:213:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"nodeType":"VariableDeclarationStatement","src":"9447:238:2"},{"expression":{"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1675,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"9696:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1677,"indexExpression":{"id":1676,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9709:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9696:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1678,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"9722:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"src":"9696:33:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1680,"nodeType":"ExpressionStatement","src":"9696:33:2"},{"expression":{"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1681,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"9739:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1684,"indexExpression":{"expression":{"id":1682,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"9757:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9765:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"9757:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9739:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1685,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9775:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9739:45:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1687,"nodeType":"ExpressionStatement","src":"9739:45:2"},{"assignments":[1689],"declarations":[{"constant":false,"id":1689,"mutability":"mutable","name":"memberLength","nameLocation":"9851:12:2","nodeType":"VariableDeclaration","scope":1755,"src":"9843:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"9843:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1692,"initialValue":{"expression":{"id":1690,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"9866:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9875:6:2","memberName":"length","nodeType":"MemberAccess","src":"9866:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9843:38:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1693,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"9942:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9942:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1696,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9962:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9972:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9976:6:2","memberName":"sender","nodeType":"MemberAccess","src":"9972:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9962:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1705,"nodeType":"IfStatement","src":"9938:92:2","trueBody":{"id":1704,"nodeType":"Block","src":"9984:46:2","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1701,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"10005:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10005:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1703,"nodeType":"RevertStatement","src":"9998:21:2"}]}},{"body":{"id":1737,"nodeType":"Block","src":"10075:367:2","statements":[{"assignments":[1713],"declarations":[{"constant":false,"id":1713,"mutability":"mutable","name":"member","nameLocation":"10097:6:2","nodeType":"VariableDeclaration","scope":1737,"src":"10089:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1712,"name":"address","nodeType":"ElementaryTypeName","src":"10089:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1717,"initialValue":{"baseExpression":{"id":1714,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"10106:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1716,"indexExpression":{"id":1715,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10115:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10106:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10089:28:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1718,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"10206:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10224:1:2","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":1720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10216:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1719,"name":"address","nodeType":"ElementaryTypeName","src":"10216:7:2","typeDescriptions":{}}},"id":1722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10216:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10206:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1727,"nodeType":"IfStatement","src":"10202:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1724,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"10235:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1726,"nodeType":"RevertStatement","src":"10228:21:2"}},{"expression":{"arguments":[{"id":1729,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10354:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1730,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"10365:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1728,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"10343:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10343:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1732,"nodeType":"ExpressionStatement","src":"10343:29:2"},{"id":1736,"nodeType":"UncheckedBlock","src":"10386:46:2","statements":[{"expression":{"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10414:3:2","subExpression":{"id":1733,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10416:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1735,"nodeType":"ExpressionStatement","src":"10414:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1709,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10056:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1710,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"10060:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10056:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1738,"initializationExpression":{"assignments":[1707],"declarations":[{"constant":false,"id":1707,"mutability":"mutable","name":"i","nameLocation":"10053:1:2","nodeType":"VariableDeclaration","scope":1738,"src":"10045:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1706,"name":"uint256","nodeType":"ElementaryTypeName","src":"10045:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1708,"nodeType":"VariableDeclarationStatement","src":"10045:9:2"},"nodeType":"ForStatement","src":"10040:402:2"},{"eventCall":{"arguments":[{"id":1740,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10527:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1741,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10538:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10546:5:2","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":2619,"src":"10538:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1743,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10553:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10561:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2621,"src":"10553:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":1745,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10567:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10575:8:2","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2624,"src":"10567:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"expression":{"id":1747,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10585:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10593:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"10585:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1749,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10600:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10608:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"10600:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1739,"name":"ProfileCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"10512:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,string memory,struct Metadata memory,address,address)"}},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10512:103:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1752,"nodeType":"EmitStatement","src":"10507:108:2"},{"expression":{"id":1753,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10666:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1629,"id":1754,"nodeType":"Return","src":"10659:16:2"}]},"baseFunctions":[2742],"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"8030:746:2","text":"@notice Creates a new profile\n @dev This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event\n Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile\n Note: The 'name' and 'profileId' are used to generate the 'anchor' address\n @param _nonce Nonce used to generate profileId. Can be any integer, but should be unique\n for each profile.\n @param _name The name of the profile\n @param _metadata The metadata of the profile\n @param _owner The owner of the profile\n @param _members The members of the profile (can be set only if msg.sender == _owner)\n @return The ID for the created profile"},"functionSelector":"3a92f65f","implemented":true,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"8790:13:2","parameters":{"id":1626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1615,"mutability":"mutable","name":"_nonce","nameLocation":"8821:6:2","nodeType":"VariableDeclaration","scope":1756,"src":"8813:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1614,"name":"uint256","nodeType":"ElementaryTypeName","src":"8813:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1617,"mutability":"mutable","name":"_name","nameLocation":"8851:5:2","nodeType":"VariableDeclaration","scope":1756,"src":"8837:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1616,"name":"string","nodeType":"ElementaryTypeName","src":"8837:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"_metadata","nameLocation":"8882:9:2","nodeType":"VariableDeclaration","scope":1756,"src":"8866:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":1619,"nodeType":"UserDefinedTypeName","pathNode":{"id":1618,"name":"Metadata","nameLocations":["8866:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"8866:8:2"},"referencedDeclaration":3098,"src":"8866:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":1622,"mutability":"mutable","name":"_owner","nameLocation":"8909:6:2","nodeType":"VariableDeclaration","scope":1756,"src":"8901:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1621,"name":"address","nodeType":"ElementaryTypeName","src":"8901:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1625,"mutability":"mutable","name":"_members","nameLocation":"8942:8:2","nodeType":"VariableDeclaration","scope":1756,"src":"8925:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1623,"name":"address","nodeType":"ElementaryTypeName","src":"8925:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1624,"nodeType":"ArrayTypeName","src":"8925:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8803:153:2"},"returnParameters":{"id":1629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1756,"src":"8975:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8975:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8974:9:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1820,"nodeType":"FunctionDefinition","src":"11210:830:2","nodes":[],"body":{"id":1819,"nodeType":"Block","src":"11369:671:2","nodes":[],"statements":[{"expression":{"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1769,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11420:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1771,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11445:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1772,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11457:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1770,"name":"_generateAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"11429:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,string memory) returns (address)"}},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11420:43:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1775,"nodeType":"ExpressionStatement","src":"11420:43:2"},{"assignments":[1778],"declarations":[{"constant":false,"id":1778,"mutability":"mutable","name":"profile","nameLocation":"11554:7:2","nodeType":"VariableDeclaration","scope":1819,"src":"11538:23:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1777,"nodeType":"UserDefinedTypeName","pathNode":{"id":1776,"name":"Profile","nameLocations":["11538:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"11538:7:2"},"referencedDeclaration":2629,"src":"11538:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1782,"initialValue":{"baseExpression":{"id":1779,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"11564:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1781,"indexExpression":{"id":1780,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11577:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11538:50:2"},{"expression":{"id":1787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1783,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11627:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11635:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2621,"src":"11627:12:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1786,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11642:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"11627:20:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1788,"nodeType":"ExpressionStatement","src":"11627:20:2"},{"expression":{"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1789,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"11687:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1792,"indexExpression":{"expression":{"id":1790,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11705:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11713:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"11705:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11687:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11731:1:2","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":1794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11723:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11723:7:2","typeDescriptions":{}}},"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11723:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11687:46:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1798,"nodeType":"ExpressionStatement","src":"11687:46:2"},{"expression":{"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1799,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11774:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11782:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"11774:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1802,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11791:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11774:23:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1804,"nodeType":"ExpressionStatement","src":"11774:23:2"},{"expression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1805,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"11807:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1807,"indexExpression":{"id":1806,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11825:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11807:25:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11835:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11807:38:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1810,"nodeType":"ExpressionStatement","src":"11807:38:2"},{"eventCall":{"arguments":[{"id":1812,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11950:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1813,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11962:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1814,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11969:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1811,"name":"ProfileNameUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"11931:18:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes32,string memory,address)"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11931:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1816,"nodeType":"EmitStatement","src":"11926:50:2"},{"expression":{"id":1817,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"12027:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1768,"id":1818,"nodeType":"Return","src":"12020:13:2"}]},"baseFunctions":[2752],"documentation":{"id":1757,"nodeType":"StructuredDocumentation","src":"10688:517:2","text":"@notice Updates the name of the profile and generates new anchor.\n Emits a 'ProfileNameUpdated()' event.\n @dev Use caution when updating your profile name as it will generate a new anchor address. You can always update the name\n back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\n @param _profileId The profileId of the profile\n @param _name The new name of the profile\n @return anchor The new anchor"},"functionSelector":"cf189ff2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1764,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11320:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1765,"kind":"modifierInvocation","modifierName":{"id":1763,"name":"onlyProfileOwner","nameLocations":["11303:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"11303:16:2"},"nodeType":"ModifierInvocation","src":"11303:28:2"}],"name":"updateProfileName","nameLocation":"11219:17:2","parameters":{"id":1762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1759,"mutability":"mutable","name":"_profileId","nameLocation":"11245:10:2","nodeType":"VariableDeclaration","scope":1820,"src":"11237:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11237:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1761,"mutability":"mutable","name":"_name","nameLocation":"11271:5:2","nodeType":"VariableDeclaration","scope":1820,"src":"11257:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1760,"name":"string","nodeType":"ElementaryTypeName","src":"11257:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11236:41:2"},"returnParameters":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"anchor","nameLocation":"11357:6:2","nodeType":"VariableDeclaration","scope":1820,"src":"11349:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"11349:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11348:16:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1845,"nodeType":"FunctionDefinition","src":"12309:415:2","nodes":[],"body":{"id":1844,"nodeType":"Block","src":"12445:279:2","nodes":[],"statements":[{"expression":{"id":1837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1832,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"12553:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1834,"indexExpression":{"id":1833,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12566:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12553:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12578:8:2","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2624,"src":"12553:33:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1836,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"12589:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12553:45:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":1838,"nodeType":"ExpressionStatement","src":"12553:45:2"},{"eventCall":{"arguments":[{"id":1840,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12695:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1841,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"12707:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":1839,"name":"ProfileMetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"12672:22:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,struct Metadata memory)"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12672:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1843,"nodeType":"EmitStatement","src":"12667:50:2"}]},"baseFunctions":[2761],"documentation":{"id":1821,"nodeType":"StructuredDocumentation","src":"12046:258:2","text":"@notice Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\n @dev 'msg.sender' must be the owner of the profile.\n @param _profileId The ID of the profile\n @param _metadata The new 'Metadata' of the profile"},"functionSelector":"ac402839","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1829,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12429:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1830,"kind":"modifierInvocation","modifierName":{"id":1828,"name":"onlyProfileOwner","nameLocations":["12412:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"12412:16:2"},"nodeType":"ModifierInvocation","src":"12412:28:2"}],"name":"updateProfileMetadata","nameLocation":"12318:21:2","parameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1823,"mutability":"mutable","name":"_profileId","nameLocation":"12348:10:2","nodeType":"VariableDeclaration","scope":1845,"src":"12340:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12340:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1826,"mutability":"mutable","name":"_metadata","nameLocation":"12376:9:2","nodeType":"VariableDeclaration","scope":1845,"src":"12360:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"Metadata","nameLocations":["12360:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12360:8:2"},"referencedDeclaration":3098,"src":"12360:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"12339:47:2"},"returnParameters":{"id":1831,"nodeType":"ParameterList","parameters":[],"src":"12445:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1866,"nodeType":"FunctionDefinition","src":"12992:208:2","nodes":[],"body":{"id":1865,"nodeType":"Block","src":"13093:107:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1856,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"13128:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1857,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"13140:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1855,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"13110:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13110:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1860,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"13172:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1861,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"13184:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1859,"name":"_isMemberOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"13153:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13153:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13110:83:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1854,"id":1864,"nodeType":"Return","src":"13103:90:2"}]},"baseFunctions":[2704],"documentation":{"id":1846,"nodeType":"StructuredDocumentation","src":"12730:257:2","text":"@notice Checks if the address is an owner or member of the profile\n @param _profileId The ID of the profile\n @param _account The address to check\n @return 'true' if the address is an owner or member of the profile, otherwise 'false'"},"functionSelector":"5e8a7915","implemented":true,"kind":"function","modifiers":[],"name":"isOwnerOrMemberOfProfile","nameLocation":"13001:24:2","parameters":{"id":1851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"_profileId","nameLocation":"13034:10:2","nodeType":"VariableDeclaration","scope":1866,"src":"13026:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13026:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"_account","nameLocation":"13054:8:2","nodeType":"VariableDeclaration","scope":1866,"src":"13046:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1849,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13025:38:2"},"returnParameters":{"id":1854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1866,"src":"13087:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1852,"name":"bool","nodeType":"ElementaryTypeName","src":"13087:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13086:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1882,"nodeType":"FunctionDefinition","src":"13452:152:2","nodes":[],"body":{"id":1881,"nodeType":"Block","src":"13543:61:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1877,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1869,"src":"13578:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1878,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"13590:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1876,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"13560:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13560:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1875,"id":1880,"nodeType":"Return","src":"13553:44:2"}]},"baseFunctions":[2714],"documentation":{"id":1867,"nodeType":"StructuredDocumentation","src":"13206:241:2","text":"@notice Checks if the given address is an owner of the profile\n @param _profileId The ID of the profile\n @param _owner The address to check\n @return 'true' if the address is an owner of the profile, otherwise 'false'"},"functionSelector":"39b86b8c","implemented":true,"kind":"function","modifiers":[],"name":"isOwnerOfProfile","nameLocation":"13461:16:2","parameters":{"id":1872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1869,"mutability":"mutable","name":"_profileId","nameLocation":"13486:10:2","nodeType":"VariableDeclaration","scope":1882,"src":"13478:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13478:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1871,"mutability":"mutable","name":"_owner","nameLocation":"13506:6:2","nodeType":"VariableDeclaration","scope":1882,"src":"13498:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1870,"name":"address","nodeType":"ElementaryTypeName","src":"13498:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13477:36:2"},"returnParameters":{"id":1875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1882,"src":"13537:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1873,"name":"bool","nodeType":"ElementaryTypeName","src":"13537:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13536:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1898,"nodeType":"FunctionDefinition","src":"13857:156:2","nodes":[],"body":{"id":1897,"nodeType":"Block","src":"13950:63:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1893,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"13986:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1894,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"13998:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1892,"name":"_isMemberOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"13967:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1891,"id":1896,"nodeType":"Return","src":"13960:46:2"}]},"baseFunctions":[2724],"documentation":{"id":1883,"nodeType":"StructuredDocumentation","src":"13610:242:2","text":"@notice Checks if the given address is a member of the profile\n @param _profileId The ID of the profile\n @param _member The address to check\n @return 'true' if the address is a member of the profile, otherwise 'false'"},"functionSelector":"0ec1fbac","implemented":true,"kind":"function","modifiers":[],"name":"isMemberOfProfile","nameLocation":"13866:17:2","parameters":{"id":1888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1885,"mutability":"mutable","name":"_profileId","nameLocation":"13892:10:2","nodeType":"VariableDeclaration","scope":1898,"src":"13884:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13884:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1887,"mutability":"mutable","name":"_member","nameLocation":"13912:7:2","nodeType":"VariableDeclaration","scope":1898,"src":"13904:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1886,"name":"address","nodeType":"ElementaryTypeName","src":"13904:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13883:37:2"},"returnParameters":{"id":1891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1898,"src":"13944:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1889,"name":"bool","nodeType":"ElementaryTypeName","src":"13944:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13943:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1921,"nodeType":"FunctionDefinition","src":"14336:382:2","nodes":[],"body":{"id":1920,"nodeType":"Block","src":"14472:246:2","nodes":[],"statements":[{"expression":{"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1909,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"14530:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1911,"indexExpression":{"id":1910,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14554:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14530:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1912,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"14568:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14530:51:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1914,"nodeType":"ExpressionStatement","src":"14530:51:2"},{"eventCall":{"arguments":[{"id":1916,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14685:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1917,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"14697:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1915,"name":"ProfilePendingOwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2676,"src":"14658:26:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14658:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1919,"nodeType":"EmitStatement","src":"14653:58:2"}]},"baseFunctions":[2769],"documentation":{"id":1899,"nodeType":"StructuredDocumentation","src":"14019:312:2","text":"@notice Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\n @dev 'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\n @param _profileId The ID of the profile\n @param _pendingOwner The new pending owner"},"functionSelector":"3b66dacd","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1906,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14456:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1907,"kind":"modifierInvocation","modifierName":{"id":1905,"name":"onlyProfileOwner","nameLocations":["14439:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"14439:16:2"},"nodeType":"ModifierInvocation","src":"14439:28:2"}],"name":"updateProfilePendingOwner","nameLocation":"14345:25:2","parameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1901,"mutability":"mutable","name":"_profileId","nameLocation":"14379:10:2","nodeType":"VariableDeclaration","scope":1921,"src":"14371:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14371:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1903,"mutability":"mutable","name":"_pendingOwner","nameLocation":"14399:13:2","nodeType":"VariableDeclaration","scope":1921,"src":"14391:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1902,"name":"address","nodeType":"ElementaryTypeName","src":"14391:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14370:43:2"},"returnParameters":{"id":1908,"nodeType":"ParameterList","parameters":[],"src":"14472:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1966,"nodeType":"FunctionDefinition","src":"15016:745:2","nodes":[],"body":{"id":1965,"nodeType":"Block","src":"15077:684:2","nodes":[],"statements":[{"assignments":[1929],"declarations":[{"constant":false,"id":1929,"mutability":"mutable","name":"profile","nameLocation":"15147:7:2","nodeType":"VariableDeclaration","scope":1965,"src":"15131:23:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1928,"nodeType":"UserDefinedTypeName","pathNode":{"id":1927,"name":"Profile","nameLocations":["15131:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"15131:7:2"},"referencedDeclaration":2629,"src":"15131:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1933,"initialValue":{"baseExpression":{"id":1930,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"15157:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1932,"indexExpression":{"id":1931,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15170:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15157:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15131:50:2"},{"assignments":[1935],"declarations":[{"constant":false,"id":1935,"mutability":"mutable","name":"newOwner","nameLocation":"15290:8:2","nodeType":"VariableDeclaration","scope":1965,"src":"15282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1934,"name":"address","nodeType":"ElementaryTypeName","src":"15282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1939,"initialValue":{"baseExpression":{"id":1936,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"15301:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1938,"indexExpression":{"id":1937,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15325:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15301:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15282:54:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15414:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15418:6:2","memberName":"sender","nodeType":"MemberAccess","src":"15414:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1942,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15428:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15414:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1947,"nodeType":"IfStatement","src":"15410:54:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1944,"name":"NOT_PENDING_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"15445:17:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15445:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1946,"nodeType":"RevertStatement","src":"15438:26:2"}},{"expression":{"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1948,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1929,"src":"15550:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15558:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"15550:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1951,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15566:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15550:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1953,"nodeType":"ExpressionStatement","src":"15550:24:2"},{"expression":{"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15584:42:2","subExpression":{"baseExpression":{"id":1954,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"15591:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1956,"indexExpression":{"id":1955,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15615:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15591:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1958,"nodeType":"ExpressionStatement","src":"15584:42:2"},{"eventCall":{"arguments":[{"id":1960,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15728:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1961,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1929,"src":"15740:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15748:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"15740:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1959,"name":"ProfileOwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"15708:19:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1964,"nodeType":"EmitStatement","src":"15703:51:2"}]},"baseFunctions":[2775],"documentation":{"id":1922,"nodeType":"StructuredDocumentation","src":"14724:287:2","text":"@notice Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\n @dev 'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\n @param _profileId The ID of the profile"},"functionSelector":"2497f3c6","implemented":true,"kind":"function","modifiers":[],"name":"acceptProfileOwnership","nameLocation":"15025:22:2","parameters":{"id":1925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1924,"mutability":"mutable","name":"_profileId","nameLocation":"15056:10:2","nodeType":"VariableDeclaration","scope":1966,"src":"15048:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15048:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15047:20:2"},"returnParameters":{"id":1926,"nodeType":"ParameterList","parameters":[],"src":"15077:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2017,"nodeType":"FunctionDefinition","src":"15962:658:2","nodes":[],"body":{"id":2016,"nodeType":"Block","src":"16067:553:2","nodes":[],"statements":[{"assignments":[1979],"declarations":[{"constant":false,"id":1979,"mutability":"mutable","name":"memberLength","nameLocation":"16085:12:2","nodeType":"VariableDeclaration","scope":2016,"src":"16077:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1978,"name":"uint256","nodeType":"ElementaryTypeName","src":"16077:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1982,"initialValue":{"expression":{"id":1980,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"16100:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16109:6:2","memberName":"length","nodeType":"MemberAccess","src":"16100:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16077:38:2"},{"body":{"id":2014,"nodeType":"Block","src":"16246:368:2","statements":[{"assignments":[1990],"declarations":[{"constant":false,"id":1990,"mutability":"mutable","name":"member","nameLocation":"16268:6:2","nodeType":"VariableDeclaration","scope":2014,"src":"16260:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1989,"name":"address","nodeType":"ElementaryTypeName","src":"16260:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1994,"initialValue":{"baseExpression":{"id":1991,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"16277:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1993,"indexExpression":{"id":1992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16286:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16277:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16260:28:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1995,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"16377:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16395:1:2","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":1997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1996,"name":"address","nodeType":"ElementaryTypeName","src":"16387:7:2","typeDescriptions":{}}},"id":1999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16377:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2004,"nodeType":"IfStatement","src":"16373:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2001,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"16406:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16406:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2003,"nodeType":"RevertStatement","src":"16399:21:2"}},{"expression":{"arguments":[{"id":2006,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1969,"src":"16525:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2007,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"16537:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2005,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52916,"src":"16514:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16514:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2009,"nodeType":"ExpressionStatement","src":"16514:30:2"},{"id":2013,"nodeType":"UncheckedBlock","src":"16558:46:2","statements":[{"expression":{"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16586:3:2","subExpression":{"id":2010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16588:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2012,"nodeType":"ExpressionStatement","src":"16586:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16227:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1987,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"16231:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16227:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2015,"initializationExpression":{"assignments":[1984],"declarations":[{"constant":false,"id":1984,"mutability":"mutable","name":"i","nameLocation":"16224:1:2","nodeType":"VariableDeclaration","scope":2015,"src":"16216:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1983,"name":"uint256","nodeType":"ElementaryTypeName","src":"16216:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1985,"nodeType":"VariableDeclarationStatement","src":"16216:9:2"},"nodeType":"ForStatement","src":"16211:403:2"}]},"baseFunctions":[2784],"documentation":{"id":1967,"nodeType":"StructuredDocumentation","src":"15767:190:2","text":"@notice Adds members to the profile\n @dev 'msg.sender' must be the owner of the profile.\n @param _profileId The ID of the profile\n @param _members The members to add"},"functionSelector":"5063f361","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1975,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1969,"src":"16055:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1976,"kind":"modifierInvocation","modifierName":{"id":1974,"name":"onlyProfileOwner","nameLocations":["16038:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"16038:16:2"},"nodeType":"ModifierInvocation","src":"16038:28:2"}],"name":"addMembers","nameLocation":"15971:10:2","parameters":{"id":1973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1969,"mutability":"mutable","name":"_profileId","nameLocation":"15990:10:2","nodeType":"VariableDeclaration","scope":2017,"src":"15982:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15982:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1972,"mutability":"mutable","name":"_members","nameLocation":"16019:8:2","nodeType":"VariableDeclaration","scope":2017,"src":"16002:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1970,"name":"address","nodeType":"ElementaryTypeName","src":"16002:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1971,"nodeType":"ArrayTypeName","src":"16002:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15981:47:2"},"returnParameters":{"id":1977,"nodeType":"ParameterList","parameters":[],"src":"16067:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2054,"nodeType":"FunctionDefinition","src":"16837:500:2","nodes":[],"body":{"id":2053,"nodeType":"Block","src":"16945:392:2","nodes":[],"statements":[{"assignments":[2030],"declarations":[{"constant":false,"id":2030,"mutability":"mutable","name":"memberLength","nameLocation":"16963:12:2","nodeType":"VariableDeclaration","scope":2053,"src":"16955:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2029,"name":"uint256","nodeType":"ElementaryTypeName","src":"16955:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2033,"initialValue":{"expression":{"id":2031,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"16978:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:6:2","memberName":"length","nodeType":"MemberAccess","src":"16978:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16955:38:2"},{"body":{"id":2051,"nodeType":"Block","src":"17129:202:2","statements":[{"expression":{"arguments":[{"id":2041,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"17237:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":2042,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"17249:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2044,"indexExpression":{"id":2043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17258:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17249:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2040,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52947,"src":"17225:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17225:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2046,"nodeType":"ExpressionStatement","src":"17225:36:2"},{"id":2050,"nodeType":"UncheckedBlock","src":"17275:46:2","statements":[{"expression":{"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17303:3:2","subExpression":{"id":2047,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17305:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2049,"nodeType":"ExpressionStatement","src":"17303:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2037,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17110:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2038,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"17114:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17110:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2052,"initializationExpression":{"assignments":[2035],"declarations":[{"constant":false,"id":2035,"mutability":"mutable","name":"i","nameLocation":"17107:1:2","nodeType":"VariableDeclaration","scope":2052,"src":"17099:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"17099:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2036,"nodeType":"VariableDeclarationStatement","src":"17099:9:2"},"nodeType":"ForStatement","src":"17094:237:2"}]},"baseFunctions":[2793],"documentation":{"id":2018,"nodeType":"StructuredDocumentation","src":"16626:206:2","text":"@notice Removes members from the profile\n @dev 'msg.sender' must be the pending owner of the profile.\n @param _profileId The ID of the profile\n @param _members The members to remove"},"functionSelector":"e0cf1e4c","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2026,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"16933:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2027,"kind":"modifierInvocation","modifierName":{"id":2025,"name":"onlyProfileOwner","nameLocations":["16916:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"16916:16:2"},"nodeType":"ModifierInvocation","src":"16916:28:2"}],"name":"removeMembers","nameLocation":"16846:13:2","parameters":{"id":2024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2020,"mutability":"mutable","name":"_profileId","nameLocation":"16868:10:2","nodeType":"VariableDeclaration","scope":2054,"src":"16860:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16860:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2023,"mutability":"mutable","name":"_members","nameLocation":"16897:8:2","nodeType":"VariableDeclaration","scope":2054,"src":"16880:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2021,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2022,"nodeType":"ArrayTypeName","src":"16880:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"16859:47:2"},"returnParameters":{"id":2028,"nodeType":"ParameterList","parameters":[],"src":"16945:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2071,"nodeType":"FunctionDefinition","src":"17659:152:2","nodes":[],"body":{"id":2070,"nodeType":"Block","src":"17725:86:2","nodes":[],"statements":[{"condition":{"id":2065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17739:42:2","subExpression":{"arguments":[{"id":2061,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"17758:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":2062,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17770:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17774:6:2","memberName":"sender","nodeType":"MemberAccess","src":"17770:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2060,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"17740:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17740:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2069,"nodeType":"IfStatement","src":"17735:69:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2066,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"17790:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17790:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2068,"nodeType":"RevertStatement","src":"17783:21:2"}}]},"documentation":{"id":2055,"nodeType":"StructuredDocumentation","src":"17479:175:2","text":"@notice Checks if the caller is the owner of the profile\n @dev Internal function used by modifier 'onlyProfileOwner'\n @param _profileId The ID of the profile"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyProfileOwner","nameLocation":"17668:22:2","parameters":{"id":2058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2057,"mutability":"mutable","name":"_profileId","nameLocation":"17699:10:2","nodeType":"VariableDeclaration","scope":2071,"src":"17691:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17691:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17690:20:2"},"returnParameters":{"id":2059,"nodeType":"ParameterList","parameters":[],"src":"17725:0:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2192,"nodeType":"FunctionDefinition","src":"18166:969:2","nodes":[],"body":{"id":2191,"nodeType":"Block","src":"18266:869:2","nodes":[],"statements":[{"assignments":[2082],"declarations":[{"constant":false,"id":2082,"mutability":"mutable","name":"encodedData","nameLocation":"18289:11:2","nodeType":"VariableDeclaration","scope":2191,"src":"18276:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2081,"name":"bytes","nodeType":"ElementaryTypeName","src":"18276:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2088,"initialValue":{"arguments":[{"id":2085,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18314:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2086,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"18326:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2083,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18303:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18307:6:2","memberName":"encode","nodeType":"MemberAccess","src":"18303:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18303:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18276:56:2"},{"assignments":[2090],"declarations":[{"constant":false,"id":2090,"mutability":"mutable","name":"encodedConstructorArgs","nameLocation":"18355:22:2","nodeType":"VariableDeclaration","scope":2191,"src":"18342:35:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2089,"name":"bytes","nodeType":"ElementaryTypeName","src":"18342:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2099,"initialValue":{"arguments":[{"id":2093,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18391:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2096,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18411:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18403:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2094,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:2","typeDescriptions":{}}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18403:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18380:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18384:6:2","memberName":"encode","nodeType":"MemberAccess","src":"18380:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18380:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18342:75:2"},{"assignments":[2101],"declarations":[{"constant":false,"id":2101,"mutability":"mutable","name":"bytecode","nameLocation":"18441:8:2","nodeType":"VariableDeclaration","scope":2191,"src":"18428:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2100,"name":"bytes","nodeType":"ElementaryTypeName","src":"18428:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2110,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":2105,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"18474:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}],"id":2104,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18469:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18469:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Anchor_$1492","typeString":"type(contract Anchor)"}},"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18482:12:2","memberName":"creationCode","nodeType":"MemberAccess","src":"18469:25:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2108,"name":"encodedConstructorArgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"18496:22:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":2102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18452:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18456:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"18452:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18452:67:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18428:91:2"},{"assignments":[2112],"declarations":[{"constant":false,"id":2112,"mutability":"mutable","name":"salt","nameLocation":"18538:4:2","nodeType":"VariableDeclaration","scope":2191,"src":"18530:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2116,"initialValue":{"arguments":[{"id":2114,"name":"encodedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"18555:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2113,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18545:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18545:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18530:37:2"},{"assignments":[2118],"declarations":[{"constant":false,"id":2118,"mutability":"mutable","name":"preComputedAddress","nameLocation":"18586:18:2","nodeType":"VariableDeclaration","scope":2191,"src":"18578:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2117,"name":"address","nodeType":"ElementaryTypeName","src":"18578:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2145,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786666","id":2130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18678:4:2","typeDescriptions":{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"},"value":"0xff"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_255_by_1","typeString":"int_const 255"}],"id":2129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18671:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2128,"name":"bytes1","nodeType":"ElementaryTypeName","src":"18671:6:2","typeDescriptions":{}}},"id":2131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18671:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":2134,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18693:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18685:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2132,"name":"address","nodeType":"ElementaryTypeName","src":"18685:7:2","typeDescriptions":{}}},"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18685:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2136,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"18700:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2138,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2101,"src":"18716:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2137,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18706:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18706:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18654:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18658:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"18654:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18654:72:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2125,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18644:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18644:83:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18636:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"18636:7:2","typeDescriptions":{}}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18636:92:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18628:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2121,"name":"uint160","nodeType":"ElementaryTypeName","src":"18628:7:2","typeDescriptions":{}}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18628:101:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18607:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2119,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:2","typeDescriptions":{}}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:132:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18578:161:2"},{"clauses":[{"block":{"id":2168,"nodeType":"Block","src":"18918:50:2","statements":[{"expression":{"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2161,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"18932:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2164,"name":"_anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2159,"src":"18949:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}],"id":2163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18941:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2162,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:2","typeDescriptions":{}}},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18941:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18932:25:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2167,"nodeType":"ExpressionStatement","src":"18932:25:2"}]},"errorName":"","id":2169,"nodeType":"TryCatchClause","parameters":{"id":2160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2159,"mutability":"mutable","name":"_anchor","nameLocation":"18909:7:2","nodeType":"VariableDeclaration","scope":2169,"src":"18902:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"},"typeName":{"id":2158,"nodeType":"UserDefinedTypeName","pathNode":{"id":2157,"name":"Anchor","nameLocations":["18902:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":1492,"src":"18902:6:2"},"referencedDeclaration":1492,"src":"18902:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"visibility":"internal"}],"src":"18901:16:2"},"src":"18893:75:2"},{"block":{"id":2188,"nodeType":"Block","src":"18975:154:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":2173,"name":"preComputedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"19008:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19000:8:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"19000:8:2","stateMutability":"payable","typeDescriptions":{}}},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19000:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":2170,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"18993:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18993:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19029:9:2","memberName":"profileId","nodeType":"MemberAccess","referencedDeclaration":1408,"src":"18993:45:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18993:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2178,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"19044:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18993:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2183,"nodeType":"IfStatement","src":"18989:88:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2180,"name":"ANCHOR_ERROR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"19063:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19063:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2182,"nodeType":"RevertStatement","src":"19056:21:2"}},{"expression":{"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2184,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"19091:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2185,"name":"preComputedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"19100:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19091:27:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2187,"nodeType":"ExpressionStatement","src":"19091:27:2"}]},"errorName":"","id":2189,"nodeType":"TryCatchClause","src":"18969:160:2"}],"externalCall":{"arguments":[{"id":2151,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18866:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2154,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18886:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2152,"name":"address","nodeType":"ElementaryTypeName","src":"18878:7:2","typeDescriptions":{}}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18843:10:2","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_Anchor_$1492_$","typeString":"function (bytes32,address) returns (contract Anchor)"},"typeName":{"id":2147,"nodeType":"UserDefinedTypeName","pathNode":{"id":2146,"name":"Anchor","nameLocations":["18847:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":1492,"src":"18847:6:2"},"referencedDeclaration":1492,"src":"18847:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}}},"id":2150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":2149,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"18860:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"18843:22:2","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_Anchor_$1492_$salt","typeString":"function (bytes32,address) returns (contract Anchor)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18843:49:2","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"id":2190,"nodeType":"TryStatement","src":"18839:290:2"}]},"documentation":{"id":2072,"nodeType":"StructuredDocumentation","src":"17817:344:2","text":"@notice Generates and deploys the anchor for the given 'profileId' and name\n @dev Internal function used by 'createProfile()' and 'updateProfileName()' to create and anchor.\n @param _profileId The ID of the profile\n @param _name The name of the profile\n @return anchor The address of the deployed anchor contract"},"implemented":true,"kind":"function","modifiers":[],"name":"_generateAnchor","nameLocation":"18175:15:2","parameters":{"id":2077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2074,"mutability":"mutable","name":"_profileId","nameLocation":"18199:10:2","nodeType":"VariableDeclaration","scope":2192,"src":"18191:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18191:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2076,"mutability":"mutable","name":"_name","nameLocation":"18225:5:2","nodeType":"VariableDeclaration","scope":2192,"src":"18211:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2075,"name":"string","nodeType":"ElementaryTypeName","src":"18211:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18190:41:2"},"returnParameters":{"id":2080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2079,"mutability":"mutable","name":"anchor","nameLocation":"18258:6:2","nodeType":"VariableDeclaration","scope":2192,"src":"18250:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2078,"name":"address","nodeType":"ElementaryTypeName","src":"18250:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18249:16:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2211,"nodeType":"FunctionDefinition","src":"19465:159:2","nodes":[],"body":{"id":2210,"nodeType":"Block","src":"19557:67:2","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":2205,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"19601:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2206,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"19609:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19584:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19588:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"19584:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19584:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2202,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19574:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19574:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2201,"id":2209,"nodeType":"Return","src":"19567:50:2"}]},"documentation":{"id":2193,"nodeType":"StructuredDocumentation","src":"19141:319:2","text":"@notice Generates the 'profileId' based on msg.sender and nonce\n @dev Internal function used by 'createProfile()' to generate profileId.\n @param _nonce Nonce provided by the caller to generate 'profileId'\n @param _owner The owner of the profile\n @return 'profileId' The ID of the profile"},"implemented":true,"kind":"function","modifiers":[],"name":"_generateProfileId","nameLocation":"19474:18:2","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2195,"mutability":"mutable","name":"_nonce","nameLocation":"19501:6:2","nodeType":"VariableDeclaration","scope":2211,"src":"19493:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2194,"name":"uint256","nodeType":"ElementaryTypeName","src":"19493:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"_owner","nameLocation":"19517:6:2","nodeType":"VariableDeclaration","scope":2211,"src":"19509:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"19509:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19492:32:2"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2211,"src":"19548:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19548:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19547:9:2"},"scope":2295,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2229,"nodeType":"FunctionDefinition","src":"19963:156:2","nodes":[],"body":{"id":2228,"nodeType":"Block","src":"20055:64:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":2221,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"20072:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":2223,"indexExpression":{"id":2222,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"20085:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20072:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":2224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20097:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"20072:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2225,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"20106:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20072:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2220,"id":2227,"nodeType":"Return","src":"20065:47:2"}]},"documentation":{"id":2212,"nodeType":"StructuredDocumentation","src":"19630:328:2","text":"@notice Checks if an address is the owner of the profile\n @dev Internal function used to determine if an address is the profile owner\n @param _profileId The 'profileId' of the profile\n @param _owner The address to check\n @return 'true' if the address is an owner of the profile, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOwnerOfProfile","nameLocation":"19972:17:2","parameters":{"id":2217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2214,"mutability":"mutable","name":"_profileId","nameLocation":"19998:10:2","nodeType":"VariableDeclaration","scope":2229,"src":"19990:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19990:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2216,"mutability":"mutable","name":"_owner","nameLocation":"20018:6:2","nodeType":"VariableDeclaration","scope":2229,"src":"20010:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2215,"name":"address","nodeType":"ElementaryTypeName","src":"20010:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19989:36:2"},"returnParameters":{"id":2220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2229,"src":"20049:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2218,"name":"bool","nodeType":"ElementaryTypeName","src":"20049:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20048:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2245,"nodeType":"FunctionDefinition","src":"20464:146:2","nodes":[],"body":{"id":2244,"nodeType":"Block","src":"20558:52:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":2240,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"20583:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2241,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2234,"src":"20595:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2239,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52712,"src":"20575:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20575:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2238,"id":2243,"nodeType":"Return","src":"20568:35:2"}]},"documentation":{"id":2230,"nodeType":"StructuredDocumentation","src":"20125:334:2","text":"@notice Checks if an address is a member of the profile\n @dev Internal function used to determine if an address is a member of the profile\n @param _profileId The 'profileId' of the profile\n @param _member The address to check\n @return 'true' if the address is a member of the profile, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isMemberOfProfile","nameLocation":"20473:18:2","parameters":{"id":2235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2232,"mutability":"mutable","name":"_profileId","nameLocation":"20500:10:2","nodeType":"VariableDeclaration","scope":2245,"src":"20492:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20492:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2234,"mutability":"mutable","name":"_member","nameLocation":"20520:7:2","nodeType":"VariableDeclaration","scope":2245,"src":"20512:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2233,"name":"address","nodeType":"ElementaryTypeName","src":"20512:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20491:37:2"},"returnParameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2245,"src":"20552:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2236,"name":"bool","nodeType":"ElementaryTypeName","src":"20552:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20551:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2294,"nodeType":"FunctionDefinition","src":"20847:318:2","nodes":[],"body":{"id":2293,"nodeType":"Block","src":"20935:230:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2256,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"20949:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20971:1:2","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":2258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20963:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2257,"name":"address","nodeType":"ElementaryTypeName","src":"20963:7:2","typeDescriptions":{}}},"id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20949:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2265,"nodeType":"IfStatement","src":"20945:51:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2262,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"20982:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20982:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2264,"nodeType":"RevertStatement","src":"20975:21:2"}},{"assignments":[2267],"declarations":[{"constant":false,"id":2267,"mutability":"mutable","name":"amount","nameLocation":"21015:6:2","nodeType":"VariableDeclaration","scope":2293,"src":"21007:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2266,"name":"uint256","nodeType":"ElementaryTypeName","src":"21007:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2286,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2268,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21024:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2269,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"21034:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21024:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":2282,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21099:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21091:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2280,"name":"address","nodeType":"ElementaryTypeName","src":"21091:7:2","typeDescriptions":{}}},"id":2283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21091:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":2277,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21073:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2276,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"21067:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$4491_$","typeString":"type(contract ERC20)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$4491","typeString":"contract ERC20"}},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21081:9:2","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":4200,"src":"21067:23:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21024:81:2","trueExpression":{"expression":{"arguments":[{"id":2273,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21051:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21043:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2271,"name":"address","nodeType":"ElementaryTypeName","src":"21043:7:2","typeDescriptions":{}}},"id":2274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21043:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21057:7:2","memberName":"balance","nodeType":"MemberAccess","src":"21043:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21007:98:2"},{"expression":{"arguments":[{"id":2288,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21131:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2289,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"21139:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2290,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"21151:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2287,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"21115:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21115:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2292,"nodeType":"ExpressionStatement","src":"21115:43:2"}]},"baseFunctions":[2801],"documentation":{"id":2246,"nodeType":"StructuredDocumentation","src":"20616:226:2","text":"@notice Transfers any fund balance in Allo to the recipient\n @dev 'msg.sender' must be the Allo owner\n @param _token The address of the token to transfer\n @param _recipient The address of the recipient"},"functionSelector":"24ae6a27","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2253,"name":"ALLO_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"20923:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2254,"kind":"modifierInvocation","modifierName":{"id":2252,"name":"onlyRole","nameLocations":["20914:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":52659,"src":"20914:8:2"},"nodeType":"ModifierInvocation","src":"20914:20:2"}],"name":"recoverFunds","nameLocation":"20856:12:2","parameters":{"id":2251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"_token","nameLocation":"20877:6:2","nodeType":"VariableDeclaration","scope":2294,"src":"20869:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2247,"name":"address","nodeType":"ElementaryTypeName","src":"20869:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2250,"mutability":"mutable","name":"_recipient","nameLocation":"20893:10:2","nodeType":"VariableDeclaration","scope":2294,"src":"20885:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2249,"name":"address","nodeType":"ElementaryTypeName","src":"20885:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20868:36:2"},"returnParameters":{"id":2255,"nodeType":"ParameterList","parameters":[],"src":"20935:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":1509,"name":"IRegistry","nameLocations":["5258:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"5258:9:2"},"id":1510,"nodeType":"InheritanceSpecifier","src":"5258:9:2"},{"baseName":{"id":1511,"name":"Initializable","nameLocations":["5269:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":53408,"src":"5269:13:2"},"id":1512,"nodeType":"InheritanceSpecifier","src":"5269:13:2"},{"baseName":{"id":1513,"name":"Native","nameLocations":["5284:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"5284:6:2"},"id":1514,"nodeType":"InheritanceSpecifier","src":"5284:6:2"},{"baseName":{"id":1515,"name":"AccessControlUpgradeable","nameLocations":["5292:24:2"],"nodeType":"IdentifierPath","referencedDeclaration":52953,"src":"5292:24:2"},"id":1516,"nodeType":"InheritanceSpecifier","src":"5292:24:2"},{"baseName":{"id":1517,"name":"Transfer","nameLocations":["5318:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3317,"src":"5318:8:2"},"id":1518,"nodeType":"InheritanceSpecifier","src":"5318:8:2"},{"baseName":{"id":1519,"name":"Errors","nameLocations":["5328:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"5328:6:2"},"id":1520,"nodeType":"InheritanceSpecifier","src":"5328:6:2"}],"canonicalName":"Registry","contractDependencies":[1492],"contractKind":"contract","documentation":{"id":1508,"nodeType":"StructuredDocumentation","src":"4584:653:2","text":"@title Registry Contract\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice Registry contract for creating and managing profiles\n @dev This contract is used to create and manage profiles for the Allo protocol\n It is also used to deploy the anchor contract for each profile which acts as a proxy\n for the profile and is used to receive funds and execute transactions on behalf of the profile\n The Registry is also used to add and remove members from a profile and update the profile 'Metadata'"},"fullyImplemented":true,"linearizedBaseContracts":[2295,3089,3317,52953,3106,54226,54238,53026,53952,53408,2802],"name":"Registry","nameLocation":"5246:8:2","scope":2296,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117]}],"license":"AGPL-3.0-only"},"id":2} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryCommunity.sol/FAllo.json b/pkg/contracts/out/RegistryCommunity.sol/FAllo.json index 00f47efa5..d21902491 100644 --- a/pkg/contracts/out/RegistryCommunity.sol/FAllo.json +++ b/pkg/contracts/out/RegistryCommunity.sol/FAllo.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"FAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"FAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"id":113} \ No newline at end of file +{"abi":[{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"FAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"FAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","id":77914,"exportedSymbols":{"AccessControl":[55525],"CVStrategy":[75790],"Clone":[3002],"ERC165Checker":[58516],"FAllo":[76053],"IAllo":[2610],"IERC20":[57117],"IPointStrategy":[73022],"IRegistry":[2802],"ISafe":[75799],"Metadata":[3098],"ReentrancyGuard":[56326],"RegistryCommunity":[77913],"RegistryFactory":[78149],"SafeERC20":[57554],"StrategyStruct":[73113],"console":[29766]},"nodeType":"SourceUnit","src":"42:23113:131","nodes":[{"id":75992,"nodeType":"PragmaDirective","src":"42:24:131","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75994,"nodeType":"ImportDirective","src":"68:70:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":57118,"symbolAliases":[{"foreign":{"id":75993,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57117,"src":"76:6:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75996,"nodeType":"ImportDirective","src":"139:79:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":55526,"symbolAliases":[{"foreign":{"id":75995,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55525,"src":"147:13:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75998,"nodeType":"ImportDirective","src":"219:82:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":57555,"symbolAliases":[{"foreign":{"id":75997,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57554,"src":"227:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76000,"nodeType":"ImportDirective","src":"302:85:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":56327,"symbolAliases":[{"foreign":{"id":75999,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56326,"src":"310:15:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76003,"nodeType":"ImportDirective","src":"518:84:131","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":76001,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"526:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":76002,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"537:8:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76005,"nodeType":"ImportDirective","src":"603:66:131","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":76004,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"611:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76007,"nodeType":"ImportDirective","src":"670:54:131","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":78150,"symbolAliases":[{"foreign":{"id":76006,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"678:15:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76009,"nodeType":"ImportDirective","src":"725:34:131","nodes":[],"absolutePath":"pkg/contracts/src/ISafe.sol","file":"./ISafe.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":75800,"symbolAliases":[{"foreign":{"id":76008,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"733:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76010,"nodeType":"ImportDirective","src":"819:31:131","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":29767,"symbolAliases":[],"unitAlias":""},{"id":76012,"nodeType":"ImportDirective","src":"851:92:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":58517,"symbolAliases":[{"foreign":{"id":76011,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58516,"src":"859:13:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76016,"nodeType":"ImportDirective","src":"945:76:131","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":75791,"symbolAliases":[{"foreign":{"id":76013,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"953:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":76014,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75790,"src":"969:10:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":76015,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"981:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76018,"nodeType":"ImportDirective","src":"1023:65:131","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":76017,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"1031:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76053,"nodeType":"ContractDefinition","src":"1161:467:131","nodes":[{"id":76039,"nodeType":"FunctionDefinition","src":"1183:301:131","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"1192:28:131","parameters":{"id":76035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76020,"mutability":"mutable","name":"_profileId","nameLocation":"1238:10:131","nodeType":"VariableDeclaration","scope":76039,"src":"1230:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1230:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76022,"mutability":"mutable","name":"_strategy","nameLocation":"1266:9:131","nodeType":"VariableDeclaration","scope":76039,"src":"1258:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76021,"name":"address","nodeType":"ElementaryTypeName","src":"1258:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76024,"mutability":"mutable","name":"_initStrategyData","nameLocation":"1298:17:131","nodeType":"VariableDeclaration","scope":76039,"src":"1285:30:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76023,"name":"bytes","nodeType":"ElementaryTypeName","src":"1285:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76026,"mutability":"mutable","name":"_token","nameLocation":"1333:6:131","nodeType":"VariableDeclaration","scope":76039,"src":"1325:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76025,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76028,"mutability":"mutable","name":"_amount","nameLocation":"1357:7:131","nodeType":"VariableDeclaration","scope":76039,"src":"1349:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76027,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76031,"mutability":"mutable","name":"_metadata","nameLocation":"1390:9:131","nodeType":"VariableDeclaration","scope":76039,"src":"1374:25:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76030,"nodeType":"UserDefinedTypeName","pathNode":{"id":76029,"name":"Metadata","nameLocations":["1374:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1374:8:131"},"referencedDeclaration":3098,"src":"1374:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76034,"mutability":"mutable","name":"_managers","nameLocation":"1426:9:131","nodeType":"VariableDeclaration","scope":76039,"src":"1409:26:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76032,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76033,"nodeType":"ArrayTypeName","src":"1409:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1220:221:131"},"returnParameters":{"id":76038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76037,"mutability":"mutable","name":"poolId","nameLocation":"1476:6:131","nodeType":"VariableDeclaration","scope":76039,"src":"1468:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1467:16:131"},"scope":76053,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76044,"nodeType":"FunctionDefinition","src":"1490:55:131","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1499:11:131","parameters":{"id":76040,"nodeType":"ParameterList","parameters":[],"src":"1510:2:131"},"returnParameters":{"id":76043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76044,"src":"1536:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76041,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:9:131"},"scope":76053,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76052,"nodeType":"FunctionDefinition","src":"1550:76:131","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"1559:7:131","parameters":{"id":76047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76046,"mutability":"mutable","name":"_poolId","nameLocation":"1575:7:131","nodeType":"VariableDeclaration","scope":76052,"src":"1567:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1567:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1566:17:131"},"returnParameters":{"id":76051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76052,"src":"1607:17:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":76049,"nodeType":"UserDefinedTypeName","pathNode":{"id":76048,"name":"IAllo.Pool","nameLocations":["1607:5:131","1613:4:131"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"1607:10:131"},"referencedDeclaration":2319,"src":"1607:10:131","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"1606:19:131"},"scope":76053,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[76053],"name":"FAllo","nameLocation":"1171:5:131","scope":77914,"usedErrors":[]},{"id":77913,"nodeType":"ContractDefinition","src":"1630:21524:131","nodes":[{"id":76060,"nodeType":"UsingForDirective","src":"1697:32:131","nodes":[],"global":false,"libraryName":{"id":76058,"name":"ERC165Checker","nameLocations":["1703:13:131"],"nodeType":"IdentifierPath","referencedDeclaration":58516,"src":"1703:13:131"},"typeName":{"id":76059,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":76064,"nodeType":"UsingForDirective","src":"1734:27:131","nodes":[],"global":false,"libraryName":{"id":76061,"name":"SafeERC20","nameLocations":["1740:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":57554,"src":"1740:9:131"},"typeName":{"id":76063,"nodeType":"UserDefinedTypeName","pathNode":{"id":76062,"name":"IERC20","nameLocations":["1754:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"1754:6:131"},"referencedDeclaration":57117,"src":"1754:6:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}},{"id":76067,"nodeType":"UsingForDirective","src":"1766:24:131","nodes":[],"global":false,"libraryName":{"id":76065,"name":"Clone","nameLocations":["1772:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1772:5:131"},"typeName":{"id":76066,"name":"address","nodeType":"ElementaryTypeName","src":"1782:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":76070,"nodeType":"VariableDeclaration","src":"1796:75:131","nodes":[],"constant":true,"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1820:6:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76068,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":76069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1829:42:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":76075,"nodeType":"VariableDeclaration","src":"2042:82:131","nodes":[],"constant":true,"functionSelector":"a0b21cdf","mutability":"constant","name":"COUNCIL_MEMBER_CHANGE","nameLocation":"2066:21:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2042:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d4245525f4348414e4745","id":76073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2100:23:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""},"value":"COUNCIL_MEMBER_CHANGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""}],"id":76072,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2090:9:131","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76079,"nodeType":"EventDefinition","src":"2296:29:131","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"2302:7:131","parameters":{"id":76078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76077,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"2318:5:131","nodeType":"VariableDeclaration","scope":76079,"src":"2310:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76076,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2309:15:131"}},{"id":76083,"nodeType":"EventDefinition","src":"2330:36:131","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"2336:14:131","parameters":{"id":76082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76081,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"2359:5:131","nodeType":"VariableDeclaration","scope":76083,"src":"2351:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76080,"name":"address","nodeType":"ElementaryTypeName","src":"2351:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2350:15:131"}},{"id":76089,"nodeType":"EventDefinition","src":"2371:74:131","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"2377:24:131","parameters":{"id":76088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76085,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"2410:10:131","nodeType":"VariableDeclaration","scope":76089,"src":"2402:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76084,"name":"address","nodeType":"ElementaryTypeName","src":"2402:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76087,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"2430:13:131","nodeType":"VariableDeclaration","scope":76089,"src":"2422:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76086,"name":"address","nodeType":"ElementaryTypeName","src":"2422:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2401:43:131"}},{"id":76095,"nodeType":"EventDefinition","src":"2450:63:131","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"2456:16:131","parameters":{"id":76094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76091,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2481:7:131","nodeType":"VariableDeclaration","scope":76095,"src":"2473:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76090,"name":"address","nodeType":"ElementaryTypeName","src":"2473:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76093,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"2498:13:131","nodeType":"VariableDeclaration","scope":76095,"src":"2490:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76092,"name":"uint256","nodeType":"ElementaryTypeName","src":"2490:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2472:40:131"}},{"id":76101,"nodeType":"EventDefinition","src":"2518:67:131","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"2524:18:131","parameters":{"id":76100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76097,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2551:7:131","nodeType":"VariableDeclaration","scope":76101,"src":"2543:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76096,"name":"address","nodeType":"ElementaryTypeName","src":"2543:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76099,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2568:15:131","nodeType":"VariableDeclaration","scope":76101,"src":"2560:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2560:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2542:42:131"}},{"id":76109,"nodeType":"EventDefinition","src":"2590:87:131","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"2596:12:131","parameters":{"id":76108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76103,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2617:7:131","nodeType":"VariableDeclaration","scope":76109,"src":"2609:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76102,"name":"address","nodeType":"ElementaryTypeName","src":"2609:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76105,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"2634:16:131","nodeType":"VariableDeclaration","scope":76109,"src":"2626:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76104,"name":"address","nodeType":"ElementaryTypeName","src":"2626:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76107,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2660:15:131","nodeType":"VariableDeclaration","scope":76109,"src":"2652:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76106,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2608:68:131"}},{"id":76113,"nodeType":"EventDefinition","src":"2682:43:131","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"2688:19:131","parameters":{"id":76112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76111,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"2716:7:131","nodeType":"VariableDeclaration","scope":76113,"src":"2708:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76110,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2707:17:131"}},{"id":76122,"nodeType":"EventDefinition","src":"2730:89:131","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"2736:19:131","parameters":{"id":76121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76115,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"2764:10:131","nodeType":"VariableDeclaration","scope":76122,"src":"2756:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2756:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76117,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"2783:14:131","nodeType":"VariableDeclaration","scope":76122,"src":"2776:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76116,"name":"string","nodeType":"ElementaryTypeName","src":"2776:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76120,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"2808:9:131","nodeType":"VariableDeclaration","scope":76122,"src":"2799:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76119,"nodeType":"UserDefinedTypeName","pathNode":{"id":76118,"name":"Metadata","nameLocations":["2799:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"2799:8:131"},"referencedDeclaration":3098,"src":"2799:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"2755:63:131"}},{"id":76126,"nodeType":"EventDefinition","src":"2824:39:131","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"2830:13:131","parameters":{"id":76125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76124,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2852:9:131","nodeType":"VariableDeclaration","scope":76126,"src":"2844:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76123,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2843:19:131"}},{"id":76130,"nodeType":"EventDefinition","src":"2868:41:131","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"2874:15:131","parameters":{"id":76129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76128,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2898:9:131","nodeType":"VariableDeclaration","scope":76130,"src":"2890:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76127,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2889:19:131"}},{"id":76138,"nodeType":"EventDefinition","src":"2914:93:131","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"2920:23:131","parameters":{"id":76137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76132,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2952:7:131","nodeType":"VariableDeclaration","scope":76138,"src":"2944:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76131,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76134,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2969:9:131","nodeType":"VariableDeclaration","scope":76138,"src":"2961:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76133,"name":"address","nodeType":"ElementaryTypeName","src":"2961:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76136,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"2988:17:131","nodeType":"VariableDeclaration","scope":76138,"src":"2980:25:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76135,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2943:63:131"}},{"id":76144,"nodeType":"EventDefinition","src":"3012:68:131","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"3018:25:131","parameters":{"id":76143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76140,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3052:7:131","nodeType":"VariableDeclaration","scope":76144,"src":"3044:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76139,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76142,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3069:9:131","nodeType":"VariableDeclaration","scope":76144,"src":"3061:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76141,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3043:36:131"}},{"id":76148,"nodeType":"EventDefinition","src":"3085:47:131","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"3091:20:131","parameters":{"id":76147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76146,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"3120:10:131","nodeType":"VariableDeclaration","scope":76148,"src":"3112:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76145,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3111:20:131"}},{"id":76154,"nodeType":"EventDefinition","src":"3137:67:131","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"3143:20:131","parameters":{"id":76153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76150,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3172:7:131","nodeType":"VariableDeclaration","scope":76154,"src":"3164:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76149,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76152,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"3189:13:131","nodeType":"VariableDeclaration","scope":76154,"src":"3181:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3181:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3163:40:131"}},{"id":76160,"nodeType":"EventDefinition","src":"3209:69:131","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"3215:20:131","parameters":{"id":76159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76156,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3244:7:131","nodeType":"VariableDeclaration","scope":76160,"src":"3236:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76155,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76158,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"3261:15:131","nodeType":"VariableDeclaration","scope":76160,"src":"3253:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76157,"name":"uint256","nodeType":"ElementaryTypeName","src":"3253:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3235:42:131"}},{"id":76173,"nodeType":"EventDefinition","src":"3283:110:131","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"3289:11:131","parameters":{"id":76172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76162,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"3309:7:131","nodeType":"VariableDeclaration","scope":76173,"src":"3301:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76161,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76164,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3326:9:131","nodeType":"VariableDeclaration","scope":76173,"src":"3318:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76163,"name":"address","nodeType":"ElementaryTypeName","src":"3318:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76166,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"3345:10:131","nodeType":"VariableDeclaration","scope":76173,"src":"3337:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76165,"name":"address","nodeType":"ElementaryTypeName","src":"3337:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76168,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"3365:6:131","nodeType":"VariableDeclaration","scope":76173,"src":"3357:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76167,"name":"address","nodeType":"ElementaryTypeName","src":"3357:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76171,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"3382:9:131","nodeType":"VariableDeclaration","scope":76173,"src":"3373:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76170,"nodeType":"UserDefinedTypeName","pathNode":{"id":76169,"name":"Metadata","nameLocations":["3373:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"3373:8:131"},"referencedDeclaration":3098,"src":"3373:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"3300:92:131"}},{"id":76188,"nodeType":"FunctionDefinition","src":"3564:155:131","nodes":[],"body":{"id":76187,"nodeType":"Block","src":"3604:115:131","nodes":[],"statements":[{"condition":{"id":76181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3618:43:131","subExpression":{"arguments":[{"id":76177,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"3627:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76178,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3650:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3654:6:131","memberName":"sender","nodeType":"MemberAccess","src":"3650:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76176,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55289,"src":"3619:7:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3619:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76186,"nodeType":"IfStatement","src":"3614:99:131","trueBody":{"id":76185,"nodeType":"Block","src":"3663:50:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76182,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"3684:16:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3684:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76184,"nodeType":"RevertStatement","src":"3677:25:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"3573:15:131","parameters":{"id":76174,"nodeType":"ParameterList","parameters":[],"src":"3588:2:131"},"returnParameters":{"id":76175,"nodeType":"ParameterList","parameters":[],"src":"3604:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76202,"nodeType":"FunctionDefinition","src":"3725:143:131","nodes":[],"body":{"id":76201,"nodeType":"Block","src":"3774:94:131","nodes":[],"statements":[{"condition":{"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3788:21:131","subExpression":{"arguments":[{"expression":{"id":76192,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3798:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:131","memberName":"sender","nodeType":"MemberAccess","src":"3798:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76191,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"3789:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":76194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76200,"nodeType":"IfStatement","src":"3784:78:131","trueBody":{"id":76199,"nodeType":"Block","src":"3811:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76196,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"3832:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3832:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76198,"nodeType":"RevertStatement","src":"3825:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"3734:24:131","parameters":{"id":76189,"nodeType":"ParameterList","parameters":[],"src":"3758:2:131"},"returnParameters":{"id":76190,"nodeType":"ParameterList","parameters":[],"src":"3774:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76217,"nodeType":"FunctionDefinition","src":"3874:156:131","nodes":[],"body":{"id":76216,"nodeType":"Block","src":"3939:91:131","nodes":[],"statements":[{"condition":{"id":76210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3953:18:131","subExpression":{"arguments":[{"id":76208,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76204,"src":"3963:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76207,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"3954:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":76209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76215,"nodeType":"IfStatement","src":"3949:75:131","trueBody":{"id":76214,"nodeType":"Block","src":"3973:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76211,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"3994:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"RevertStatement","src":"3987:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"3883:25:131","parameters":{"id":76205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76204,"mutability":"mutable","name":"_sender","nameLocation":"3917:7:131","nodeType":"VariableDeclaration","scope":76217,"src":"3909:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76203,"name":"address","nodeType":"ElementaryTypeName","src":"3909:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3908:17:131"},"returnParameters":{"id":76206,"nodeType":"ParameterList","parameters":[],"src":"3939:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76232,"nodeType":"FunctionDefinition","src":"4036:162:131","nodes":[],"body":{"id":76231,"nodeType":"Block","src":"4097:101:131","nodes":[],"statements":[{"condition":{"id":76225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4111:29:131","subExpression":{"baseExpression":{"id":76222,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"4112:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76224,"indexExpression":{"id":76223,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"4130:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4112:28:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76230,"nodeType":"IfStatement","src":"4107:85:131","trueBody":{"id":76229,"nodeType":"Block","src":"4142:50:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76226,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76286,"src":"4163:16:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76228,"nodeType":"RevertStatement","src":"4156:25:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"4045:19:131","parameters":{"id":76220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76219,"mutability":"mutable","name":"_strategy","nameLocation":"4073:9:131","nodeType":"VariableDeclaration","scope":76232,"src":"4065:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76218,"name":"address","nodeType":"ElementaryTypeName","src":"4065:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4064:19:131"},"returnParameters":{"id":76221,"nodeType":"ParameterList","parameters":[],"src":"4097:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76248,"nodeType":"FunctionDefinition","src":"4204:171:131","nodes":[],"body":{"id":76247,"nodeType":"Block","src":"4282:93:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76239,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"4296:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76240,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76236,"src":"4307:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4296:20:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76246,"nodeType":"IfStatement","src":"4292:77:131","trueBody":{"id":76245,"nodeType":"Block","src":"4318:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76242,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76290,"src":"4339:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76244,"nodeType":"RevertStatement","src":"4332:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"4213:19:131","parameters":{"id":76237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76234,"mutability":"mutable","name":"_sender","nameLocation":"4241:7:131","nodeType":"VariableDeclaration","scope":76248,"src":"4233:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76233,"name":"address","nodeType":"ElementaryTypeName","src":"4233:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76236,"mutability":"mutable","name":"_strategy","nameLocation":"4258:9:131","nodeType":"VariableDeclaration","scope":76248,"src":"4250:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76235,"name":"address","nodeType":"ElementaryTypeName","src":"4250:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4232:36:131"},"returnParameters":{"id":76238,"nodeType":"ParameterList","parameters":[],"src":"4282:0:131"},"scope":77913,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76266,"nodeType":"FunctionDefinition","src":"4381:189:131","nodes":[],"body":{"id":76265,"nodeType":"Block","src":"4446:124:131","nodes":[],"statements":[{"condition":{"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4460:51:131","subExpression":{"baseExpression":{"baseExpression":{"id":76253,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"4461:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76256,"indexExpression":{"expression":{"id":76254,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4489:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4493:6:131","memberName":"sender","nodeType":"MemberAccess","src":"4489:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:39:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76258,"indexExpression":{"id":76257,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76250,"src":"4501:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:50:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76264,"nodeType":"IfStatement","src":"4456:108:131","trueBody":{"id":76263,"nodeType":"Block","src":"4513:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76260,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"4534:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4534:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76262,"nodeType":"RevertStatement","src":"4527:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"4390:23:131","parameters":{"id":76251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76250,"mutability":"mutable","name":"_strategy","nameLocation":"4422:9:131","nodeType":"VariableDeclaration","scope":76266,"src":"4414:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76249,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:19:131"},"returnParameters":{"id":76252,"nodeType":"ParameterList","parameters":[],"src":"4446:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76268,"nodeType":"ErrorDefinition","src":"4742:28:131","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"4748:19:131","parameters":{"id":76267,"nodeType":"ParameterList","parameters":[],"src":"4767:2:131"}},{"id":76270,"nodeType":"ErrorDefinition","src":"4775:29:131","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"4781:20:131","parameters":{"id":76269,"nodeType":"ParameterList","parameters":[],"src":"4801:2:131"}},{"id":76272,"nodeType":"ErrorDefinition","src":"4809:25:131","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"4815:16:131","parameters":{"id":76271,"nodeType":"ParameterList","parameters":[],"src":"4831:2:131"}},{"id":76274,"nodeType":"ErrorDefinition","src":"4839:26:131","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"4845:17:131","parameters":{"id":76273,"nodeType":"ParameterList","parameters":[],"src":"4862:2:131"}},{"id":76276,"nodeType":"ErrorDefinition","src":"4870:30:131","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"4876:21:131","parameters":{"id":76275,"nodeType":"ParameterList","parameters":[],"src":"4897:2:131"}},{"id":76278,"nodeType":"ErrorDefinition","src":"4905:27:131","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"4911:18:131","parameters":{"id":76277,"nodeType":"ParameterList","parameters":[],"src":"4929:2:131"}},{"id":76280,"nodeType":"ErrorDefinition","src":"4937:29:131","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"4943:20:131","parameters":{"id":76279,"nodeType":"ParameterList","parameters":[],"src":"4963:2:131"}},{"id":76282,"nodeType":"ErrorDefinition","src":"4971:31:131","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"4977:22:131","parameters":{"id":76281,"nodeType":"ParameterList","parameters":[],"src":"4999:2:131"}},{"id":76284,"nodeType":"ErrorDefinition","src":"5007:23:131","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"5013:14:131","parameters":{"id":76283,"nodeType":"ParameterList","parameters":[],"src":"5027:2:131"}},{"id":76286,"nodeType":"ErrorDefinition","src":"5035:25:131","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"5041:16:131","parameters":{"id":76285,"nodeType":"ParameterList","parameters":[],"src":"5057:2:131"}},{"id":76288,"nodeType":"ErrorDefinition","src":"5065:26:131","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"5071:17:131","parameters":{"id":76287,"nodeType":"ParameterList","parameters":[],"src":"5088:2:131"}},{"id":76290,"nodeType":"ErrorDefinition","src":"5096:26:131","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"5102:17:131","parameters":{"id":76289,"nodeType":"ParameterList","parameters":[],"src":"5119:2:131"}},{"id":76292,"nodeType":"ErrorDefinition","src":"5127:26:131","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"5133:17:131","parameters":{"id":76291,"nodeType":"ParameterList","parameters":[],"src":"5150:2:131"}},{"id":76294,"nodeType":"ErrorDefinition","src":"5158:29:131","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"5164:20:131","parameters":{"id":76293,"nodeType":"ParameterList","parameters":[],"src":"5184:2:131"}},{"id":76296,"nodeType":"ErrorDefinition","src":"5192:23:131","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"5198:14:131","parameters":{"id":76295,"nodeType":"ParameterList","parameters":[],"src":"5212:2:131"}},{"id":76298,"nodeType":"ErrorDefinition","src":"5220:26:131","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"5226:17:131","parameters":{"id":76297,"nodeType":"ParameterList","parameters":[],"src":"5243:2:131"}},{"id":76300,"nodeType":"ErrorDefinition","src":"5251:29:131","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"5257:20:131","parameters":{"id":76299,"nodeType":"ParameterList","parameters":[],"src":"5277:2:131"}},{"id":76306,"nodeType":"ErrorDefinition","src":"5285:80:131","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"5291:25:131","parameters":{"id":76305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76302,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"5325:15:131","nodeType":"VariableDeclaration","scope":76306,"src":"5317:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76301,"name":"uint256","nodeType":"ElementaryTypeName","src":"5317:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76304,"mutability":"mutable","name":"_currentPower","nameLocation":"5350:13:131","nodeType":"VariableDeclaration","scope":76306,"src":"5342:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76303,"name":"uint256","nodeType":"ElementaryTypeName","src":"5342:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5316:48:131"}},{"id":76313,"nodeType":"StructDefinition","src":"5536:102:131","nodes":[],"canonicalName":"RegistryCommunity.Member","members":[{"constant":false,"id":76308,"mutability":"mutable","name":"member","nameLocation":"5568:6:131","nodeType":"VariableDeclaration","scope":76313,"src":"5560:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76307,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76310,"mutability":"mutable","name":"stakedAmount","nameLocation":"5592:12:131","nodeType":"VariableDeclaration","scope":76313,"src":"5584:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76309,"name":"uint256","nodeType":"ElementaryTypeName","src":"5584:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76312,"mutability":"mutable","name":"isRegistered","nameLocation":"5619:12:131","nodeType":"VariableDeclaration","scope":76313,"src":"5614:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76311,"name":"bool","nodeType":"ElementaryTypeName","src":"5614:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"5543:6:131","scope":77913,"visibility":"public"},{"id":76317,"nodeType":"StructDefinition","src":"5644:55:131","nodes":[],"canonicalName":"RegistryCommunity.Strategies","members":[{"constant":false,"id":76316,"mutability":"mutable","name":"strategies","nameLocation":"5682:10:131","nodeType":"VariableDeclaration","scope":76317,"src":"5672:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76314,"name":"address","nodeType":"ElementaryTypeName","src":"5672:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76315,"nodeType":"ArrayTypeName","src":"5672:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"5651:10:131","scope":77913,"visibility":"public"},{"id":76346,"nodeType":"StructDefinition","src":"5705:490:131","nodes":[],"canonicalName":"RegistryCommunity.InitializeParams","members":[{"constant":false,"id":76319,"mutability":"mutable","name":"_allo","nameLocation":"5747:5:131","nodeType":"VariableDeclaration","scope":76346,"src":"5739:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76318,"name":"address","nodeType":"ElementaryTypeName","src":"5739:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76322,"mutability":"mutable","name":"_gardenToken","nameLocation":"5769:12:131","nodeType":"VariableDeclaration","scope":76346,"src":"5762:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":76321,"nodeType":"UserDefinedTypeName","pathNode":{"id":76320,"name":"IERC20","nameLocations":["5762:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"5762:6:131"},"referencedDeclaration":57117,"src":"5762:6:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":76324,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"5799:20:131","nodeType":"VariableDeclaration","scope":76346,"src":"5791:28:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76323,"name":"uint256","nodeType":"ElementaryTypeName","src":"5791:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76326,"mutability":"mutable","name":"_communityFee","nameLocation":"5837:13:131","nodeType":"VariableDeclaration","scope":76346,"src":"5829:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76325,"name":"uint256","nodeType":"ElementaryTypeName","src":"5829:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76328,"mutability":"mutable","name":"_nonce","nameLocation":"5924:6:131","nodeType":"VariableDeclaration","scope":76346,"src":"5916:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76327,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76330,"mutability":"mutable","name":"_registryFactory","nameLocation":"5948:16:131","nodeType":"VariableDeclaration","scope":76346,"src":"5940:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76329,"name":"address","nodeType":"ElementaryTypeName","src":"5940:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76332,"mutability":"mutable","name":"_feeReceiver","nameLocation":"5982:12:131","nodeType":"VariableDeclaration","scope":76346,"src":"5974:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76331,"name":"address","nodeType":"ElementaryTypeName","src":"5974:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76335,"mutability":"mutable","name":"_metadata","nameLocation":"6013:9:131","nodeType":"VariableDeclaration","scope":76346,"src":"6004:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":76334,"nodeType":"UserDefinedTypeName","pathNode":{"id":76333,"name":"Metadata","nameLocations":["6004:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6004:8:131"},"referencedDeclaration":3098,"src":"6004:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76337,"mutability":"mutable","name":"_councilSafe","nameLocation":"6048:12:131","nodeType":"VariableDeclaration","scope":76346,"src":"6032:28:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76336,"name":"address","nodeType":"ElementaryTypeName","src":"6032:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":76339,"mutability":"mutable","name":"_communityName","nameLocation":"6077:14:131","nodeType":"VariableDeclaration","scope":76346,"src":"6070:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76338,"name":"string","nodeType":"ElementaryTypeName","src":"6070:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76341,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"6106:14:131","nodeType":"VariableDeclaration","scope":76346,"src":"6101:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76340,"name":"bool","nodeType":"ElementaryTypeName","src":"6101:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":76343,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"6137:16:131","nodeType":"VariableDeclaration","scope":76346,"src":"6130:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76342,"name":"string","nodeType":"ElementaryTypeName","src":"6130:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76345,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"6171:17:131","nodeType":"VariableDeclaration","scope":76346,"src":"6163:25:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76344,"name":"address","nodeType":"ElementaryTypeName","src":"6163:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"5712:16:131","scope":77913,"visibility":"public"},{"id":76348,"nodeType":"VariableDeclaration","src":"6292:25:131","nodes":[],"constant":false,"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"6304:13:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76347,"name":"bool","nodeType":"ElementaryTypeName","src":"6292:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76350,"nodeType":"VariableDeclaration","src":"6461:34:131","nodes":[],"constant":false,"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"6476:19:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76349,"name":"uint256","nodeType":"ElementaryTypeName","src":"6461:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76352,"nodeType":"VariableDeclaration","src":"6501:27:131","nodes":[],"constant":false,"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"6516:12:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76351,"name":"uint256","nodeType":"ElementaryTypeName","src":"6501:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76354,"nodeType":"VariableDeclaration","src":"6534:24:131","nodes":[],"constant":false,"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"6549:9:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6534:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76356,"nodeType":"VariableDeclaration","src":"6609:26:131","nodes":[],"constant":false,"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"6624:11:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76355,"name":"address","nodeType":"ElementaryTypeName","src":"6609:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76358,"nodeType":"VariableDeclaration","src":"6641:30:131","nodes":[],"constant":false,"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"6656:15:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76357,"name":"address","nodeType":"ElementaryTypeName","src":"6641:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76360,"nodeType":"VariableDeclaration","src":"6677:31:131","nodes":[],"constant":false,"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"6692:16:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76359,"name":"address","nodeType":"ElementaryTypeName","src":"6677:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76362,"nodeType":"VariableDeclaration","src":"6714:25:131","nodes":[],"constant":false,"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"6729:10:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76361,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76364,"nodeType":"VariableDeclaration","src":"6745:41:131","nodes":[],"constant":false,"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"6768:18:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76363,"name":"address","nodeType":"ElementaryTypeName","src":"6745:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":76367,"nodeType":"VariableDeclaration","src":"6864:25:131","nodes":[],"constant":false,"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"6881:8:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":76366,"nodeType":"UserDefinedTypeName","pathNode":{"id":76365,"name":"IRegistry","nameLocations":["6864:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6864:9:131"},"referencedDeclaration":2802,"src":"6864:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":76370,"nodeType":"VariableDeclaration","src":"6895:25:131","nodes":[],"constant":false,"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"6909:11:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":76369,"nodeType":"UserDefinedTypeName","pathNode":{"id":76368,"name":"IERC20","nameLocations":["6895:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"6895:6:131"},"referencedDeclaration":57117,"src":"6895:6:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"public"},{"id":76373,"nodeType":"VariableDeclaration","src":"6926:24:131","nodes":[],"constant":false,"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"6939:11:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"},"typeName":{"id":76372,"nodeType":"UserDefinedTypeName","pathNode":{"id":76371,"name":"ISafe","nameLocations":["6926:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":75799,"src":"6926:5:131"},"referencedDeclaration":75799,"src":"6926:5:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"visibility":"public"},{"id":76376,"nodeType":"VariableDeclaration","src":"6956:17:131","nodes":[],"constant":false,"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"6969:4:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"},"typeName":{"id":76375,"nodeType":"UserDefinedTypeName","pathNode":{"id":76374,"name":"FAllo","nameLocations":["6956:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":76053,"src":"6956:5:131"},"referencedDeclaration":76053,"src":"6956:5:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"visibility":"public"},{"id":76378,"nodeType":"VariableDeclaration","src":"7037:27:131","nodes":[],"constant":false,"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"7051:13:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76377,"name":"string","nodeType":"ElementaryTypeName","src":"7037:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76380,"nodeType":"VariableDeclaration","src":"7070:30:131","nodes":[],"constant":false,"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"7084:16:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76379,"name":"string","nodeType":"ElementaryTypeName","src":"7070:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76384,"nodeType":"VariableDeclaration","src":"7164:68:131","nodes":[],"constant":false,"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"7215:17:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":76383,"keyName":"strategy","keyNameLocation":"7180:8:131","keyType":{"id":76381,"name":"address","nodeType":"ElementaryTypeName","src":"7172:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7164:43:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"7197:9:131","valueType":{"id":76382,"name":"bool","nodeType":"ElementaryTypeName","src":"7192:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":76390,"nodeType":"VariableDeclaration","src":"7238:98:131","nodes":[],"constant":false,"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"7315:21:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":76389,"keyName":"strategy","keyNameLocation":"7254:8:131","keyType":{"id":76385,"name":"address","nodeType":"ElementaryTypeName","src":"7246:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7238:69:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76388,"keyName":"member","keyNameLocation":"7282:6:131","keyType":{"id":76386,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7266:40:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"7300:5:131","valueType":{"id":76387,"name":"uint256","nodeType":"ElementaryTypeName","src":"7292:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":76395,"nodeType":"VariableDeclaration","src":"7343:60:131","nodes":[],"constant":false,"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"7384:19:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"typeName":{"id":76394,"keyName":"member","keyNameLocation":"7359:6:131","keyType":{"id":76391,"name":"address","nodeType":"ElementaryTypeName","src":"7351:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7343:33:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76393,"nodeType":"UserDefinedTypeName","pathNode":{"id":76392,"name":"Member","nameLocations":["7369:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"7369:6:131"},"referencedDeclaration":76313,"src":"7369:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}}},"visibility":"public"},{"id":76400,"nodeType":"VariableDeclaration","src":"7409:82:131","nodes":[],"constant":false,"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"7473:18:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":76399,"keyName":"member","keyNameLocation":"7425:6:131","keyType":{"id":76396,"name":"address","nodeType":"ElementaryTypeName","src":"7417:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7409:56:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"7445:19:131","valueType":{"baseType":{"id":76397,"name":"address","nodeType":"ElementaryTypeName","src":"7435:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76398,"nodeType":"ArrayTypeName","src":"7435:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":76406,"nodeType":"VariableDeclaration","src":"7497:107:131","nodes":[],"constant":false,"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"7577:27:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":76405,"keyName":"member","keyNameLocation":"7513:6:131","keyType":{"id":76401,"name":"address","nodeType":"ElementaryTypeName","src":"7505:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7497:72:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76404,"keyName":"strategy","keyNameLocation":"7539:8:131","keyType":{"id":76402,"name":"address","nodeType":"ElementaryTypeName","src":"7531:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7523:45:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"7556:11:131","valueType":{"id":76403,"name":"bool","nodeType":"ElementaryTypeName","src":"7551:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":76409,"nodeType":"VariableDeclaration","src":"7611:24:131","nodes":[],"constant":false,"mutability":"mutable","name":"initialMembers","nameLocation":"7621:14:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":76407,"name":"address","nodeType":"ElementaryTypeName","src":"7611:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76408,"nodeType":"ArrayTypeName","src":"7611:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":76414,"nodeType":"VariableDeclaration","src":"7642:49:131","nodes":[],"constant":true,"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"7666:15:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76410,"name":"uint256","nodeType":"ElementaryTypeName","src":"7642:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":76413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7684:2:131","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":76412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7690:1:131","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7684:7:131","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":76419,"nodeType":"VariableDeclaration","src":"7697:54:131","nodes":[],"constant":true,"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"7721:7:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76415,"name":"uint256","nodeType":"ElementaryTypeName","src":"7697:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7731:2:131","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":76417,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"7736:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7731:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76428,"nodeType":"FunctionDefinition","src":"7758:145:131","nodes":[],"body":{"id":76427,"nodeType":"Block","src":"7772:131:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":76423,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"7854:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76424,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55237,"src":"7877:18:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76422,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55461,"src":"7840:13:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":76425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7840:56:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76426,"nodeType":"ExpressionStatement","src":"7840:56:131"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76420,"nodeType":"ParameterList","parameters":[],"src":"7769:2:131"},"returnParameters":{"id":76421,"nodeType":"ParameterList","parameters":[],"src":"7772:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76651,"nodeType":"FunctionDefinition","src":"7909:1945:131","nodes":[],"body":{"id":76650,"nodeType":"Block","src":"7986:1868:131","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76437,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8023:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8030:12:131","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76322,"src":"8023:19:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":76436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8015:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76435,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:131","typeDescriptions":{}}},"id":76439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8015:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76434,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"7996:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7996:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76441,"nodeType":"ExpressionStatement","src":"7996:48:131"},{"expression":{"arguments":[{"expression":{"id":76443,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8073:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8080:12:131","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76337,"src":"8073:19:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76442,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8054:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76446,"nodeType":"ExpressionStatement","src":"8054:39:131"},{"expression":{"arguments":[{"expression":{"id":76448,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8122:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8129:5:131","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76319,"src":"8122:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76447,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8103:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8103:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76451,"nodeType":"ExpressionStatement","src":"8103:32:131"},{"expression":{"arguments":[{"expression":{"id":76453,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8164:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8171:16:131","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76330,"src":"8164:23:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76452,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8145:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76456,"nodeType":"ExpressionStatement","src":"8145:43:131"},{"expression":{"arguments":[{"expression":{"id":76458,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8217:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8224:17:131","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76345,"src":"8217:24:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76457,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8198:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8198:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76461,"nodeType":"ExpressionStatement","src":"8198:44:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76462,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8257:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8264:13:131","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76326,"src":"8257:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8281:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:25:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76472,"nodeType":"IfStatement","src":"8253:95:131","trueBody":{"id":76471,"nodeType":"Block","src":"8284:64:131","statements":[{"expression":{"arguments":[{"expression":{"id":76467,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8317:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:12:131","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76332,"src":"8317:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76466,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8298:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8298:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76470,"nodeType":"ExpressionStatement","src":"8298:39:131"}]}},{"expression":{"id":76478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76473,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"8357:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76475,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8370:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8377:5:131","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76319,"src":"8370:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76474,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"8364:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$76053_$","typeString":"type(contract FAllo)"}},"id":76477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8364:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"src":"8357:26:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":76479,"nodeType":"ExpressionStatement","src":"8357:26:131"},{"expression":{"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76480,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"8393:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76481,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8407:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8414:12:131","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76322,"src":"8407:19:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"src":"8393:33:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":76484,"nodeType":"ExpressionStatement","src":"8393:33:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76485,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8440:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8447:20:131","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76324,"src":"8440:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8440:32:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76493,"nodeType":"IfStatement","src":"8436:89:131","trueBody":{"id":76492,"nodeType":"Block","src":"8474:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76489,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"8495:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8495:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76491,"nodeType":"RevertStatement","src":"8488:26:131"}]}},{"expression":{"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76494,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"8534:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76495,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8556:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8563:20:131","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76324,"src":"8556:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8534:49:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76498,"nodeType":"ExpressionStatement","src":"8534:49:131"},{"expression":{"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76499,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"8593:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76500,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8608:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8615:13:131","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76326,"src":"8608:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8593:35:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76503,"nodeType":"ExpressionStatement","src":"8593:35:131"},{"expression":{"id":76507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76504,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76348,"src":"8638:13:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76505,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8654:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8661:14:131","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":76341,"src":"8654:21:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8638:37:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76508,"nodeType":"ExpressionStatement","src":"8638:37:131"},{"expression":{"id":76512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76509,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"8685:13:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76510,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8701:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8708:14:131","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":76339,"src":"8701:21:131","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8685:37:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76513,"nodeType":"ExpressionStatement","src":"8685:37:131"},{"expression":{"id":76517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76514,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76380,"src":"8732:16:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76515,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8751:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8758:16:131","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":76343,"src":"8751:23:131","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8732:42:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76518,"nodeType":"ExpressionStatement","src":"8732:42:131"},{"expression":{"id":76522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76519,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"8784:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76520,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8802:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8809:16:131","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76330,"src":"8802:23:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8784:41:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76523,"nodeType":"ExpressionStatement","src":"8784:41:131"},{"expression":{"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76524,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"8835:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76525,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8849:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:12:131","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76332,"src":"8849:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8835:33:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76528,"nodeType":"ExpressionStatement","src":"8835:33:131"},{"expression":{"id":76534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76529,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"8878:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76531,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8898:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8905:12:131","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76337,"src":"8898:19:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76530,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"8892:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75799_$","typeString":"type(contract ISafe)"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8892:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"src":"8878:40:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"id":76535,"nodeType":"ExpressionStatement","src":"8878:40:131"},{"expression":{"id":76539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76536,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76360,"src":"8928:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76537,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8947:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8954:17:131","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76345,"src":"8947:24:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8928:43:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76540,"nodeType":"ExpressionStatement","src":"8928:43:131"},{"expression":{"arguments":[{"id":76542,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"8993:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76543,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9016:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9023:12:131","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76337,"src":"9016:19:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76541,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55493,"src":"8982:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:54:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76546,"nodeType":"ExpressionStatement","src":"8982:54:131"},{"expression":{"id":76553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76547,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76367,"src":"9047:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76549,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"9068:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":76550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9073:11:131","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":76044,"src":"9068:16:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76548,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"9058:9:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":76552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"9047:40:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76554,"nodeType":"ExpressionStatement","src":"9047:40:131"},{"assignments":[76559],"declarations":[{"constant":false,"id":76559,"mutability":"mutable","name":"owners","nameLocation":"9115:6:131","nodeType":"VariableDeclaration","scope":76650,"src":"9098:23:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76557,"name":"address","nodeType":"ElementaryTypeName","src":"9098:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76558,"nodeType":"ArrayTypeName","src":"9098:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76563,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76560,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"9124:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9136:9:131","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":75798,"src":"9124:21:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":76562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:23:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9098:49:131"},{"assignments":[76568],"declarations":[{"constant":false,"id":76568,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"9174:19:131","nodeType":"VariableDeclaration","scope":76650,"src":"9157:36:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76566,"name":"address","nodeType":"ElementaryTypeName","src":"9157:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76567,"nodeType":"ArrayTypeName","src":"9157:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76577,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76572,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"9210:6:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9217:6:131","memberName":"length","nodeType":"MemberAccess","src":"9210:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":76574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9226:1:131","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9210:17:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9196:13:131","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76569,"name":"address","nodeType":"ElementaryTypeName","src":"9200:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76570,"nodeType":"ArrayTypeName","src":"9200:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9157:71:131"},{"body":{"id":76597,"nodeType":"Block","src":"9283:59:131","statements":[{"expression":{"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76589,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9297:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76591,"indexExpression":{"id":76590,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9317:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9297:22:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76592,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"9322:6:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76594,"indexExpression":{"id":76593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9329:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9322:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9297:34:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76596,"nodeType":"ExpressionStatement","src":"9297:34:131"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9259:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76583,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"9263:6:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9270:6:131","memberName":"length","nodeType":"MemberAccess","src":"9263:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9259:17:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76598,"initializationExpression":{"assignments":[76579],"declarations":[{"constant":false,"id":76579,"mutability":"mutable","name":"i","nameLocation":"9252:1:131","nodeType":"VariableDeclaration","scope":76598,"src":"9244:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76578,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76581,"initialValue":{"hexValue":"30","id":76580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9256:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9244:13:131"},"loopExpression":{"expression":{"id":76587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9278:3:131","subExpression":{"id":76586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9278:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76588,"nodeType":"ExpressionStatement","src":"9278:3:131"},"nodeType":"ForStatement","src":"9239:103:131"},{"expression":{"id":76609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76599,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9352:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76604,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76600,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9372:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9392:6:131","memberName":"length","nodeType":"MemberAccess","src":"9372:26:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9401:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9372:30:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9352:51:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76607,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"9414:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}],"id":76606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9406:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76605,"name":"address","nodeType":"ElementaryTypeName","src":"9406:7:131","typeDescriptions":{}}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9352:74:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76610,"nodeType":"ExpressionStatement","src":"9352:74:131"},{"expression":{"id":76621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76611,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9436:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76616,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76612,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9456:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9476:6:131","memberName":"length","nodeType":"MemberAccess","src":"9456:26:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":76614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9485:1:131","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9456:30:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9436:51:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76619,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9498:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":76618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9490:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76617,"name":"address","nodeType":"ElementaryTypeName","src":"9490:7:131","typeDescriptions":{}}},"id":76620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9490:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9436:67:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76622,"nodeType":"ExpressionStatement","src":"9436:67:131"},{"expression":{"id":76637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76623,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"9591:9:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76626,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9638:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9645:6:131","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76328,"src":"9638:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76628,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"9653:13:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76629,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9668:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9675:9:131","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76335,"src":"9668:16:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":76633,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9694:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":76632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9686:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76631,"name":"address","nodeType":"ElementaryTypeName","src":"9686:7:131","typeDescriptions":{}}},"id":76634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9686:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76635,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9701:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76624,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76367,"src":"9615:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9624:13:131","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"9615:22:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":76636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9615:106:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9591:130:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76638,"nodeType":"ExpressionStatement","src":"9591:130:131"},{"expression":{"id":76641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76639,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"9732:14:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76640,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9749:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"9732:36:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76642,"nodeType":"ExpressionStatement","src":"9732:36:131"},{"eventCall":{"arguments":[{"id":76644,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"9804:9:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76645,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"9815:13:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76646,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9830:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9837:9:131","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76335,"src":"9830:16:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76643,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76122,"src":"9784:19:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9784:63:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76649,"nodeType":"EmitStatement","src":"9779:68:131"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7918:10:131","parameters":{"id":76432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76431,"mutability":"mutable","name":"params","nameLocation":"7971:6:131","nodeType":"VariableDeclaration","scope":76651,"src":"7929:48:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":76430,"nodeType":"UserDefinedTypeName","pathNode":{"id":76429,"name":"RegistryCommunity.InitializeParams","nameLocations":["7929:17:131","7947:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":76346,"src":"7929:34:131"},"referencedDeclaration":76346,"src":"7929:34:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"7928:50:131"},"returnParameters":{"id":76433,"nodeType":"ParameterList","parameters":[],"src":"7986:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76683,"nodeType":"FunctionDefinition","src":"9860:341:131","nodes":[],"body":{"id":76682,"nodeType":"Block","src":"10041:160:131","nodes":[],"statements":[{"assignments":[76667],"declarations":[{"constant":false,"id":76667,"mutability":"mutable","name":"strategyClone","nameLocation":"10059:13:131","nodeType":"VariableDeclaration","scope":76682,"src":"10051:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76666,"name":"address","nodeType":"ElementaryTypeName","src":"10051:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76674,"initialValue":{"arguments":[{"id":76670,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76360,"src":"10093:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10111:12:131","subExpression":{"id":76671,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76362,"src":"10111:10:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76668,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"10075:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":76669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10081:11:131","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"10075:17:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":76673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10051:73:131"},{"expression":{"arguments":[{"id":76676,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76667,"src":"10152:13:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76677,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"10167:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76678,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76656,"src":"10175:7:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":76679,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76659,"src":"10184:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76675,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[76683,76755],"referencedDeclaration":76755,"src":"10141:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$73112_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":76680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:53:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":76665,"id":76681,"nodeType":"Return","src":"10134:60:131"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"9869:10:131","parameters":{"id":76660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76653,"mutability":"mutable","name":"_token","nameLocation":"9888:6:131","nodeType":"VariableDeclaration","scope":76683,"src":"9880:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76652,"name":"address","nodeType":"ElementaryTypeName","src":"9880:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76656,"mutability":"mutable","name":"_params","nameLocation":"9935:7:131","nodeType":"VariableDeclaration","scope":76683,"src":"9896:46:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76655,"nodeType":"UserDefinedTypeName","pathNode":{"id":76654,"name":"StrategyStruct.InitializeParams","nameLocations":["9896:14:131","9911:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"9896:31:131"},"referencedDeclaration":73112,"src":"9896:31:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76659,"mutability":"mutable","name":"_metadata","nameLocation":"9960:9:131","nodeType":"VariableDeclaration","scope":76683,"src":"9944:25:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76658,"nodeType":"UserDefinedTypeName","pathNode":{"id":76657,"name":"Metadata","nameLocations":["9944:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9944:8:131"},"referencedDeclaration":3098,"src":"9944:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"9879:91:131"},"returnParameters":{"id":76665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76662,"mutability":"mutable","name":"poolId","nameLocation":"10011:6:131","nodeType":"VariableDeclaration","scope":76683,"src":"10003:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76661,"name":"uint256","nodeType":"ElementaryTypeName","src":"10003:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76664,"mutability":"mutable","name":"strategy","nameLocation":"10027:8:131","nodeType":"VariableDeclaration","scope":76683,"src":"10019:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76663,"name":"address","nodeType":"ElementaryTypeName","src":"10019:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10002:34:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76755,"nodeType":"FunctionDefinition","src":"10207:653:131","nodes":[],"body":{"id":76754,"nodeType":"Block","src":"10425:435:131","nodes":[],"statements":[{"assignments":[76701],"declarations":[{"constant":false,"id":76701,"mutability":"mutable","name":"token","nameLocation":"10443:5:131","nodeType":"VariableDeclaration","scope":76754,"src":"10435:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76700,"name":"address","nodeType":"ElementaryTypeName","src":"10435:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76703,"initialValue":{"id":76702,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"10451:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10435:22:131"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76704,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"10471:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10489:1:131","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":76706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10481:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76705,"name":"address","nodeType":"ElementaryTypeName","src":"10481:7:131","typeDescriptions":{}}},"id":76708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10481:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10471:20:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76715,"nodeType":"IfStatement","src":"10467:65:131","trueBody":{"id":76714,"nodeType":"Block","src":"10493:39:131","statements":[{"expression":{"id":76712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76710,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76701,"src":"10507:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76711,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"10515:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10507:14:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76713,"nodeType":"ExpressionStatement","src":"10507:14:131"}]}},{"expression":{"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76716,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"10541:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76717,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76685,"src":"10552:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10541:20:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76719,"nodeType":"ExpressionStatement","src":"10541:20:131"},{"assignments":[76724],"declarations":[{"constant":false,"id":76724,"mutability":"mutable","name":"_pool_managers","nameLocation":"10589:14:131","nodeType":"VariableDeclaration","scope":76754,"src":"10572:31:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76722,"name":"address","nodeType":"ElementaryTypeName","src":"10572:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76723,"nodeType":"ArrayTypeName","src":"10572:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76726,"initialValue":{"id":76725,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"10606:14:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10572:48:131"},{"expression":{"id":76741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76727,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76696,"src":"10631:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76730,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"10687:9:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76731,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"10698:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76734,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76690,"src":"10719:7:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":76732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10708:3:131","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10712:6:131","memberName":"encode","nodeType":"MemberAccess","src":"10708:10:131","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10708:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76736,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76701,"src":"10729:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10736:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":76738,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"10739:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":76739,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76724,"src":"10750:14:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76728,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"10640:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":76729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10645:28:131","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":76039,"src":"10640:33:131","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":76740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10640:134:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10631:143:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76742,"nodeType":"ExpressionStatement","src":"10631:143:131"},{"eventCall":{"arguments":[{"id":76744,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76696,"src":"10802:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76745,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"10810:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76748,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10828:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":76747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10820:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76746,"name":"address","nodeType":"ElementaryTypeName","src":"10820:7:131","typeDescriptions":{}}},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10820:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76750,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"10835:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76751,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"10843:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76743,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76173,"src":"10790:11:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10790:63:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76753,"nodeType":"EmitStatement","src":"10785:68:131"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"10216:10:131","parameters":{"id":76694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76685,"mutability":"mutable","name":"_strategy","nameLocation":"10244:9:131","nodeType":"VariableDeclaration","scope":76755,"src":"10236:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76684,"name":"address","nodeType":"ElementaryTypeName","src":"10236:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76687,"mutability":"mutable","name":"_token","nameLocation":"10271:6:131","nodeType":"VariableDeclaration","scope":76755,"src":"10263:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76686,"name":"address","nodeType":"ElementaryTypeName","src":"10263:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76690,"mutability":"mutable","name":"_params","nameLocation":"10326:7:131","nodeType":"VariableDeclaration","scope":76755,"src":"10287:46:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76689,"nodeType":"UserDefinedTypeName","pathNode":{"id":76688,"name":"StrategyStruct.InitializeParams","nameLocations":["10287:14:131","10302:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"10287:31:131"},"referencedDeclaration":73112,"src":"10287:31:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76693,"mutability":"mutable","name":"_metadata","nameLocation":"10359:9:131","nodeType":"VariableDeclaration","scope":76755,"src":"10343:25:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76692,"nodeType":"UserDefinedTypeName","pathNode":{"id":76691,"name":"Metadata","nameLocations":["10343:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10343:8:131"},"referencedDeclaration":3098,"src":"10343:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10226:148:131"},"returnParameters":{"id":76699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76696,"mutability":"mutable","name":"poolId","nameLocation":"10399:6:131","nodeType":"VariableDeclaration","scope":76755,"src":"10391:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76695,"name":"uint256","nodeType":"ElementaryTypeName","src":"10391:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76698,"mutability":"mutable","name":"strategy","nameLocation":"10415:8:131","nodeType":"VariableDeclaration","scope":76755,"src":"10407:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76697,"name":"address","nodeType":"ElementaryTypeName","src":"10407:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10390:34:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76872,"nodeType":"FunctionDefinition","src":"10866:1179:131","nodes":[],"body":{"id":76871,"nodeType":"Block","src":"10943:1102:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":76763,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"10979:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76762,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"10953:25:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10953:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76765,"nodeType":"ExpressionStatement","src":"10953:34:131"},{"expression":{"arguments":[{"id":76767,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11017:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76766,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76232,"src":"10997:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10997:30:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76769,"nodeType":"ExpressionStatement","src":"10997:30:131"},{"expression":{"arguments":[{"id":76771,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11056:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76770,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"11037:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11037:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76773,"nodeType":"ExpressionStatement","src":"11037:29:131"},{"condition":{"baseExpression":{"baseExpression":{"id":76774,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"11081:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76776,"indexExpression":{"id":76775,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11109:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76778,"indexExpression":{"id":76777,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11118:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76783,"nodeType":"IfStatement","src":"11077:107:131","trueBody":{"id":76782,"nodeType":"Block","src":"11130:54:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76779,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76280,"src":"11151:20:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76781,"nodeType":"RevertStatement","src":"11144:29:131"}]}},{"assignments":[76786],"declarations":[{"constant":false,"id":76786,"mutability":"mutable","name":"member","nameLocation":"11208:6:131","nodeType":"VariableDeclaration","scope":76871,"src":"11194:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":76785,"nodeType":"UserDefinedTypeName","pathNode":{"id":76784,"name":"Member","nameLocations":["11194:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"11194:6:131"},"referencedDeclaration":76313,"src":"11194:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":76790,"initialValue":{"baseExpression":{"id":76787,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"11217:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76789,"indexExpression":{"id":76788,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11237:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11217:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11194:51:131"},{"assignments":[76792],"declarations":[{"constant":false,"id":76792,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"11264:17:131","nodeType":"VariableDeclaration","scope":76871,"src":"11256:25:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76791,"name":"uint256","nodeType":"ElementaryTypeName","src":"11256:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76795,"initialValue":{"expression":{"id":76793,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76786,"src":"11284:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":76794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11291:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"11284:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11256:47:131"},{"assignments":[76797],"declarations":[{"constant":false,"id":76797,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"11321:16:131","nodeType":"VariableDeclaration","scope":76871,"src":"11313:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76796,"name":"uint256","nodeType":"ElementaryTypeName","src":"11313:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76799,"initialValue":{"id":76798,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"11340:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11313:46:131"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":76808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76801,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11389:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76800,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11374:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11400:14:131","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":73021,"src":"11374:40:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$73031_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":76805,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"11420:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":76806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11435:11:131","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"11420:26:131","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11447:9:131","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":73030,"src":"11420:36:131","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"11374:82:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76821,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11578:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76820,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11563:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11589:14:131","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":73021,"src":"11563:40:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$73031_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76825,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"11609:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":76826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11624:11:131","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"11609:26:131","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11636:5:131","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":73027,"src":"11609:32:131","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"11563:78:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76840,"nodeType":"IfStatement","src":"11559:195:131","trueBody":{"id":76839,"nodeType":"Block","src":"11643:111:131","statements":[{"expression":{"id":76837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76829,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"11657:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76834,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11716:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76835,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76792,"src":"11725:17:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76831,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11691:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76830,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11676:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11702:13:131","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":73006,"src":"11676:39:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:67:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11657:86:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76838,"nodeType":"ExpressionStatement","src":"11657:86:131"}]}},"id":76841,"nodeType":"IfStatement","src":"11370:384:131","trueBody":{"id":76819,"nodeType":"Block","src":"11458:95:131","statements":[{"expression":{"id":76817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76809,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"11472:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76814,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11531:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":76811,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11506:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76810,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11491:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11517:13:131","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":73006,"src":"11491:39:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:51:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11472:70:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76818,"nodeType":"ExpressionStatement","src":"11472:70:131"}]}},{"expression":{"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76842,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"11764:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76845,"indexExpression":{"id":76843,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11786:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11764:30:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76846,"indexExpression":{"id":76844,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11795:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11764:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76847,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"11808:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11764:60:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76849,"nodeType":"ExpressionStatement","src":"11764:60:131"},{"expression":{"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76850,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"11853:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76853,"indexExpression":{"id":76851,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11881:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11853:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76854,"indexExpression":{"id":76852,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11890:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11853:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11903:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11853:54:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76857,"nodeType":"ExpressionStatement","src":"11853:54:131"},{"expression":{"arguments":[{"id":76862,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11951:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":76858,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"11918:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76860,"indexExpression":{"id":76859,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11937:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11918:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11946:4:131","memberName":"push","nodeType":"MemberAccess","src":"11918:32:131","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":76863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11918:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76864,"nodeType":"ExpressionStatement","src":"11918:43:131"},{"eventCall":{"arguments":[{"id":76866,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"12001:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76867,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"12010:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76868,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"12021:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76865,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"11977:23:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:61:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76870,"nodeType":"EmitStatement","src":"11972:66:131"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"10875:24:131","parameters":{"id":76760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76757,"mutability":"mutable","name":"_member","nameLocation":"10908:7:131","nodeType":"VariableDeclaration","scope":76872,"src":"10900:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76756,"name":"address","nodeType":"ElementaryTypeName","src":"10900:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76759,"mutability":"mutable","name":"_strategy","nameLocation":"10925:9:131","nodeType":"VariableDeclaration","scope":76872,"src":"10917:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76758,"name":"address","nodeType":"ElementaryTypeName","src":"10917:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10899:36:131"},"returnParameters":{"id":76761,"nodeType":"ParameterList","parameters":[],"src":"10943:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76931,"nodeType":"FunctionDefinition","src":"12051:691:131","nodes":[],"body":{"id":76930,"nodeType":"Block","src":"12130:612:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":76880,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12166:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76879,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"12140:25:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12140:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76882,"nodeType":"ExpressionStatement","src":"12140:34:131"},{"expression":{"arguments":[{"id":76884,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12203:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76883,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"12184:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12184:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76886,"nodeType":"ExpressionStatement","src":"12184:29:131"},{"expression":{"arguments":[{"expression":{"id":76888,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12243:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12247:6:131","memberName":"sender","nodeType":"MemberAccess","src":"12243:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76890,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12255:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76887,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76248,"src":"12223:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12223:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76892,"nodeType":"ExpressionStatement","src":"12223:42:131"},{"condition":{"id":76898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12280:48:131","subExpression":{"baseExpression":{"baseExpression":{"id":76893,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"12281:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76895,"indexExpression":{"id":76894,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12309:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76897,"indexExpression":{"id":76896,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12318:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76903,"nodeType":"IfStatement","src":"12276:110:131","trueBody":{"id":76902,"nodeType":"Block","src":"12330:56:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76899,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76282,"src":"12351:22:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12351:24:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76901,"nodeType":"RevertStatement","src":"12344:31:131"}]}},{"expression":{"id":76910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76904,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"12396:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76907,"indexExpression":{"id":76905,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12424:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12396:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76908,"indexExpression":{"id":76906,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12433:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12396:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":76909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12446:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12396:55:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76911,"nodeType":"ExpressionStatement","src":"12396:55:131"},{"expression":{"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76912,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"12461:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76915,"indexExpression":{"id":76913,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12483:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12461:30:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76916,"indexExpression":{"id":76914,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12492:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12461:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":76917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12461:45:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76919,"nodeType":"ExpressionStatement","src":"12461:45:131"},{"expression":{"arguments":[{"id":76921,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12541:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76922,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12550:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76920,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76984,"src":"12516:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12516:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76924,"nodeType":"ExpressionStatement","src":"12516:44:131"},{"eventCall":{"arguments":[{"id":76926,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12716:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76927,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12725:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76925,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76144,"src":"12690:25:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12690:45:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76929,"nodeType":"EmitStatement","src":"12685:50:131"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"12060:26:131","parameters":{"id":76877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76874,"mutability":"mutable","name":"_member","nameLocation":"12095:7:131","nodeType":"VariableDeclaration","scope":76931,"src":"12087:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76873,"name":"address","nodeType":"ElementaryTypeName","src":"12087:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76876,"mutability":"mutable","name":"_strategy","nameLocation":"12112:9:131","nodeType":"VariableDeclaration","scope":76931,"src":"12104:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76875,"name":"address","nodeType":"ElementaryTypeName","src":"12104:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12086:36:131"},"returnParameters":{"id":76878,"nodeType":"ParameterList","parameters":[],"src":"12130:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76984,"nodeType":"FunctionDefinition","src":"12748:425:131","nodes":[],"body":{"id":76983,"nodeType":"Block","src":"12827:346:131","nodes":[],"statements":[{"assignments":[76942],"declarations":[{"constant":false,"id":76942,"mutability":"mutable","name":"memberStrategies","nameLocation":"12855:16:131","nodeType":"VariableDeclaration","scope":76983,"src":"12837:34:131","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76940,"name":"address","nodeType":"ElementaryTypeName","src":"12837:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76941,"nodeType":"ArrayTypeName","src":"12837:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76946,"initialValue":{"baseExpression":{"id":76943,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"12874:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76945,"indexExpression":{"id":76944,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76933,"src":"12893:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12874:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12837:64:131"},{"body":{"id":76981,"nodeType":"Block","src":"12965:202:131","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76958,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"12983:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76960,"indexExpression":{"id":76959,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"13000:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12983:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76961,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76935,"src":"13006:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12983:32:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76980,"nodeType":"IfStatement","src":"12979:178:131","trueBody":{"id":76979,"nodeType":"Block","src":"13017:140:131","statements":[{"expression":{"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76963,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13035:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76965,"indexExpression":{"id":76964,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"13052:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13035:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76966,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13057:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76971,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76967,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13074:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13091:6:131","memberName":"length","nodeType":"MemberAccess","src":"13074:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13100:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13074:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13057:45:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13035:67:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76973,"nodeType":"ExpressionStatement","src":"13035:67:131"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76974,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13120:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13137:3:131","memberName":"pop","nodeType":"MemberAccess","src":"13120:20:131","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13120:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76978,"nodeType":"ExpressionStatement","src":"13120:22:131"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76951,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"12931:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76952,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"12935:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12952:6:131","memberName":"length","nodeType":"MemberAccess","src":"12935:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12931:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76982,"initializationExpression":{"assignments":[76948],"declarations":[{"constant":false,"id":76948,"mutability":"mutable","name":"i","nameLocation":"12924:1:131","nodeType":"VariableDeclaration","scope":76982,"src":"12916:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76947,"name":"uint256","nodeType":"ElementaryTypeName","src":"12916:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76950,"initialValue":{"hexValue":"30","id":76949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12916:13:131"},"loopExpression":{"expression":{"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12960:3:131","subExpression":{"id":76955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"12960:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76957,"nodeType":"ExpressionStatement","src":"12960:3:131"},"nodeType":"ForStatement","src":"12911:256:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"12757:24:131","parameters":{"id":76936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76933,"mutability":"mutable","name":"_member","nameLocation":"12790:7:131","nodeType":"VariableDeclaration","scope":76984,"src":"12782:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76932,"name":"address","nodeType":"ElementaryTypeName","src":"12782:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76935,"mutability":"mutable","name":"_strategy","nameLocation":"12807:9:131","nodeType":"VariableDeclaration","scope":76984,"src":"12799:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76934,"name":"address","nodeType":"ElementaryTypeName","src":"12799:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12781:36:131"},"returnParameters":{"id":76937,"nodeType":"ParameterList","parameters":[],"src":"12827:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77088,"nodeType":"FunctionDefinition","src":"13179:998:131","nodes":[],"body":{"id":77087,"nodeType":"Block","src":"13245:932:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76991,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"13255:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13255:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76993,"nodeType":"ExpressionStatement","src":"13255:26:131"},{"assignments":[76995],"declarations":[{"constant":false,"id":76995,"mutability":"mutable","name":"member","nameLocation":"13299:6:131","nodeType":"VariableDeclaration","scope":77087,"src":"13291:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76994,"name":"address","nodeType":"ElementaryTypeName","src":"13291:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76998,"initialValue":{"expression":{"id":76996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13308:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13312:6:131","memberName":"sender","nodeType":"MemberAccess","src":"13308:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13291:27:131"},{"assignments":[77003],"declarations":[{"constant":false,"id":77003,"mutability":"mutable","name":"memberStrategies","nameLocation":"13345:16:131","nodeType":"VariableDeclaration","scope":77087,"src":"13328:33:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77001,"name":"address","nodeType":"ElementaryTypeName","src":"13328:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77002,"nodeType":"ArrayTypeName","src":"13328:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77007,"initialValue":{"baseExpression":{"id":77004,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"13364:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77006,"indexExpression":{"id":77005,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13383:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13364:26:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13328:62:131"},{"assignments":[77009],"declarations":[{"constant":false,"id":77009,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13409:16:131","nodeType":"VariableDeclaration","scope":77087,"src":"13401:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77008,"name":"uint256","nodeType":"ElementaryTypeName","src":"13401:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77010,"nodeType":"VariableDeclarationStatement","src":"13401:24:131"},{"body":{"id":77062,"nodeType":"Block","src":"13490:479:131","statements":[{"expression":{"id":77032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77022,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77009,"src":"13609:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77029,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13678:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77030,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"13686:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":77024,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13643:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77026,"indexExpression":{"id":77025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13660:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13643:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77023,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"13628:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":77027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:35:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13664:13:131","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":73006,"src":"13628:49:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":77031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:72:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13609:91:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77033,"nodeType":"ExpressionStatement","src":"13609:91:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77034,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77009,"src":"13718:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13738:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13718:21:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77061,"nodeType":"IfStatement","src":"13714:229:131","trueBody":{"id":77060,"nodeType":"Block","src":"13741:202:131","statements":[{"expression":{"id":77045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":77037,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"13759:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77042,"indexExpression":{"id":77038,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13781:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13759:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77043,"indexExpression":{"baseExpression":{"id":77039,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13789:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77041,"indexExpression":{"id":77040,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13806:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13789:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13759:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":77044,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77009,"src":"13813:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13759:70:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77046,"nodeType":"ExpressionStatement","src":"13759:70:131"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":77050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13859:16:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":77051,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"13877:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77053,"indexExpression":{"id":77052,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13899:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77057,"indexExpression":{"baseExpression":{"id":77054,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13907:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77056,"indexExpression":{"id":77055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13924:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13907:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77047,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"13847:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13855:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"13847:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13847:81:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77059,"nodeType":"ExpressionStatement","src":"13847:81:131"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77015,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13456:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77016,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13460:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13477:6:131","memberName":"length","nodeType":"MemberAccess","src":"13460:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13456:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77063,"initializationExpression":{"assignments":[77012],"declarations":[{"constant":false,"id":77012,"mutability":"mutable","name":"i","nameLocation":"13449:1:131","nodeType":"VariableDeclaration","scope":77063,"src":"13441:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77011,"name":"uint256","nodeType":"ElementaryTypeName","src":"13441:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77014,"initialValue":{"hexValue":"30","id":77013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13453:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13441:13:131"},"loopExpression":{"expression":{"id":77020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13485:3:131","subExpression":{"id":77019,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13485:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77021,"nodeType":"ExpressionStatement","src":"13485:3:131"},"nodeType":"ForStatement","src":"13436:533:131"},{"expression":{"arguments":[{"id":77067,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"14008:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77070,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14024:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14016:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77068,"name":"address","nodeType":"ElementaryTypeName","src":"14016:7:131","typeDescriptions":{}}},"id":77071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14016:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77072,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"14031:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77064,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"13979:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:16:131","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57238,"src":"13979:28:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13979:66:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77074,"nodeType":"ExpressionStatement","src":"13979:66:131"},{"expression":{"id":77080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77075,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"14055:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77077,"indexExpression":{"id":77076,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"14075:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14055:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14083:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"14055:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":77079,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"14099:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14055:57:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77081,"nodeType":"ExpressionStatement","src":"14055:57:131"},{"eventCall":{"arguments":[{"id":77083,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"14148:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77084,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"14156:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77082,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76154,"src":"14127:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77086,"nodeType":"EmitStatement","src":"14122:48:131"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":76989,"kind":"modifierInvocation","modifierName":{"id":76988,"name":"nonReentrant","nameLocations":["13232:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"13232:12:131"},"nodeType":"ModifierInvocation","src":"13232:12:131"}],"name":"increasePower","nameLocation":"13188:13:131","parameters":{"id":76987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76986,"mutability":"mutable","name":"_amountStaked","nameLocation":"13210:13:131","nodeType":"VariableDeclaration","scope":77088,"src":"13202:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76985,"name":"uint256","nodeType":"ElementaryTypeName","src":"13202:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:23:131"},"returnParameters":{"id":76990,"nodeType":"ParameterList","parameters":[],"src":"13245:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77238,"nodeType":"FunctionDefinition","src":"14317:1554:131","nodes":[],"body":{"id":77237,"nodeType":"Block","src":"14385:1486:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77095,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"14395:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77097,"nodeType":"ExpressionStatement","src":"14395:26:131"},{"assignments":[77099],"declarations":[{"constant":false,"id":77099,"mutability":"mutable","name":"member","nameLocation":"14439:6:131","nodeType":"VariableDeclaration","scope":77237,"src":"14431:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77098,"name":"address","nodeType":"ElementaryTypeName","src":"14431:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77102,"initialValue":{"expression":{"id":77100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14448:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14452:6:131","memberName":"sender","nodeType":"MemberAccess","src":"14448:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14431:27:131"},{"assignments":[77107],"declarations":[{"constant":false,"id":77107,"mutability":"mutable","name":"memberStrategies","nameLocation":"14486:16:131","nodeType":"VariableDeclaration","scope":77237,"src":"14468:34:131","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77105,"name":"address","nodeType":"ElementaryTypeName","src":"14468:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77106,"nodeType":"ArrayTypeName","src":"14468:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77111,"initialValue":{"baseExpression":{"id":77108,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"14505:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77110,"indexExpression":{"id":77109,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"14524:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14505:26:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14468:63:131"},{"assignments":[77113],"declarations":[{"constant":false,"id":77113,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14550:16:131","nodeType":"VariableDeclaration","scope":77237,"src":"14542:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77112,"name":"uint256","nodeType":"ElementaryTypeName","src":"14542:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77114,"nodeType":"VariableDeclarationStatement","src":"14542:24:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":77115,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"14581:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77117,"indexExpression":{"id":77116,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"14601:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14581:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14609:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"14581:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":77119,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"14624:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:58:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77121,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"14642:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:80:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77127,"nodeType":"IfStatement","src":"14577:140:131","trueBody":{"id":77126,"nodeType":"Block","src":"14663:54:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77123,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76300,"src":"14684:20:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14684:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77125,"nodeType":"RevertStatement","src":"14677:29:131"}]}},{"expression":{"arguments":[{"id":77131,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"14751:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77132,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"14759:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77128,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"14726:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14738:12:131","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":57211,"src":"14726:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14726:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77134,"nodeType":"ExpressionStatement","src":"14726:49:131"},{"body":{"id":77223,"nodeType":"Block","src":"14839:897:131","statements":[{"assignments":[77147],"declarations":[{"constant":false,"id":77147,"mutability":"mutable","name":"strategy","nameLocation":"14861:8:131","nodeType":"VariableDeclaration","scope":77223,"src":"14853:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77146,"name":"address","nodeType":"ElementaryTypeName","src":"14853:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77151,"initialValue":{"baseExpression":{"id":77148,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"14872:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77150,"indexExpression":{"id":77149,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"14889:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14872:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14853:38:131"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77155,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"14941:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":77154,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14936:4:131","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14936:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":77157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14957:11:131","memberName":"interfaceId","nodeType":"MemberAccess","src":"14936:32:131","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77152,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77147,"src":"14909:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14918:17:131","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58372,"src":"14909:26:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:60:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77221,"nodeType":"Block","src":"15459:250:131","statements":[{"expression":{"id":77210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77201,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15544:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77203,"indexExpression":{"id":77202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"15561:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15544:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":77204,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15566:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77209,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77205,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15583:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15600:6:131","memberName":"length","nodeType":"MemberAccess","src":"15583:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":77207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15609:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15583:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15566:45:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15544:67:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77211,"nodeType":"ExpressionStatement","src":"15544:67:131"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77212,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15629:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15646:3:131","memberName":"pop","nodeType":"MemberAccess","src":"15629:20:131","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":77215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15629:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77216,"nodeType":"ExpressionStatement","src":"15629:22:131"},{"expression":{"arguments":[{"id":77218,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77147,"src":"15685:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77217,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"15669:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15669:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77220,"nodeType":"ExpressionStatement","src":"15669:25:131"}]},"id":77222,"nodeType":"IfStatement","src":"14905:804:131","trueBody":{"id":77200,"nodeType":"Block","src":"14971:482:131","statements":[{"expression":{"id":77167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77159,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"14989:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77164,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15047:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77165,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"15055:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":77161,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77147,"src":"15023:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77160,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"15008:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":77162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:24:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":77163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15033:13:131","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":73015,"src":"15008:38:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":77166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:63:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14989:82:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77168,"nodeType":"ExpressionStatement","src":"14989:82:131"},{"assignments":[77170],"declarations":[{"constant":false,"id":77170,"mutability":"mutable","name":"currentPower","nameLocation":"15097:12:131","nodeType":"VariableDeclaration","scope":77200,"src":"15089:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77169,"name":"uint256","nodeType":"ElementaryTypeName","src":"15089:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77178,"initialValue":{"baseExpression":{"baseExpression":{"id":77171,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"15112:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77173,"indexExpression":{"id":77172,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15134:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77177,"indexExpression":{"baseExpression":{"id":77174,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15142:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77176,"indexExpression":{"id":77175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"15159:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15089:73:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77179,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"15184:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77180,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77170,"src":"15203:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15184:31:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77198,"nodeType":"Block","src":"15328:111:131","statements":[{"expression":{"id":77196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":77188,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"15350:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77193,"indexExpression":{"id":77189,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15372:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15350:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77194,"indexExpression":{"baseExpression":{"id":77190,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15380:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77192,"indexExpression":{"id":77191,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"15397:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15380:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15350:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":77195,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"15404:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15350:70:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77197,"nodeType":"ExpressionStatement","src":"15350:70:131"}]},"id":77199,"nodeType":"IfStatement","src":"15180:259:131","trueBody":{"id":77187,"nodeType":"Block","src":"15217:105:131","statements":[{"errorCall":{"arguments":[{"id":77183,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"15272:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77184,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77170,"src":"15290:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77182,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76306,"src":"15246:25:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":77185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15246:57:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77186,"nodeType":"RevertStatement","src":"15239:64:131"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"14805:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77140,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"14809:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14826:6:131","memberName":"length","nodeType":"MemberAccess","src":"14809:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14805:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77224,"initializationExpression":{"assignments":[77136],"declarations":[{"constant":false,"id":77136,"mutability":"mutable","name":"i","nameLocation":"14798:1:131","nodeType":"VariableDeclaration","scope":77224,"src":"14790:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77135,"name":"uint256","nodeType":"ElementaryTypeName","src":"14790:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77138,"initialValue":{"hexValue":"30","id":77137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14802:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14790:13:131"},"loopExpression":{"expression":{"id":77144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14834:3:131","subExpression":{"id":77143,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"14834:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77145,"nodeType":"ExpressionStatement","src":"14834:3:131"},"nodeType":"ForStatement","src":"14785:951:131"},{"expression":{"id":77230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77225,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"15745:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77227,"indexExpression":{"id":77226,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15765:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15745:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15773:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"15745:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":77229,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"15789:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15745:59:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77231,"nodeType":"ExpressionStatement","src":"15745:59:131"},{"eventCall":{"arguments":[{"id":77233,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15840:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77234,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"15848:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77232,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"15819:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15819:45:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77236,"nodeType":"EmitStatement","src":"15814:50:131"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":77093,"kind":"modifierInvocation","modifierName":{"id":77092,"name":"nonReentrant","nameLocations":["14372:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"14372:12:131"},"nodeType":"ModifierInvocation","src":"14372:12:131"}],"name":"decreasePower","nameLocation":"14326:13:131","parameters":{"id":77091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77090,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"14348:15:131","nodeType":"VariableDeclaration","scope":77238,"src":"14340:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77089,"name":"uint256","nodeType":"ElementaryTypeName","src":"14340:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14339:25:131"},"returnParameters":{"id":77094,"nodeType":"ParameterList","parameters":[],"src":"14385:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77254,"nodeType":"FunctionDefinition","src":"15877:165:131","nodes":[],"body":{"id":77253,"nodeType":"Block","src":"15977:65:131","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":77247,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"15994:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77249,"indexExpression":{"id":77248,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77240,"src":"16016:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:30:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77251,"indexExpression":{"id":77250,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77242,"src":"16025:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77246,"id":77252,"nodeType":"Return","src":"15987:48:131"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"15886:24:131","parameters":{"id":77243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77240,"mutability":"mutable","name":"_member","nameLocation":"15919:7:131","nodeType":"VariableDeclaration","scope":77254,"src":"15911:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77239,"name":"address","nodeType":"ElementaryTypeName","src":"15911:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77242,"mutability":"mutable","name":"_strategy","nameLocation":"15936:9:131","nodeType":"VariableDeclaration","scope":77254,"src":"15928:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77241,"name":"address","nodeType":"ElementaryTypeName","src":"15928:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15910:36:131"},"returnParameters":{"id":77246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77254,"src":"15968:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77244,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15967:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77267,"nodeType":"FunctionDefinition","src":"16048:143:131","nodes":[],"body":{"id":77266,"nodeType":"Block","src":"16126:65:131","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77261,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"16143:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77263,"indexExpression":{"id":77262,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"16163:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16143:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16172:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"16143:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77260,"id":77265,"nodeType":"Return","src":"16136:48:131"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"16057:21:131","parameters":{"id":77257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77256,"mutability":"mutable","name":"_member","nameLocation":"16087:7:131","nodeType":"VariableDeclaration","scope":77267,"src":"16079:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77255,"name":"address","nodeType":"ElementaryTypeName","src":"16079:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16078:17:131"},"returnParameters":{"id":77260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77267,"src":"16117:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77258,"name":"uint256","nodeType":"ElementaryTypeName","src":"16117:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16116:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77304,"nodeType":"FunctionDefinition","src":"16320:313:131","nodes":[],"body":{"id":77303,"nodeType":"Block","src":"16372:261:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77272,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"16382:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77274,"nodeType":"ExpressionStatement","src":"16382:17:131"},{"assignments":[77276],"declarations":[{"constant":false,"id":77276,"mutability":"mutable","name":"strategy","nameLocation":"16417:8:131","nodeType":"VariableDeclaration","scope":77303,"src":"16409:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77275,"name":"address","nodeType":"ElementaryTypeName","src":"16409:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77285,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77281,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77269,"src":"16449:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77279,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"16436:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":77280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16441:7:131","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":76052,"src":"16436:12:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16436:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16457:8:131","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"16436:29:131","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16428:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77277,"name":"address","nodeType":"ElementaryTypeName","src":"16428:7:131","typeDescriptions":{}}},"id":77284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16409:57:131"},{"expression":{"arguments":[{"id":77287,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77276,"src":"16495:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77286,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"16476:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77289,"nodeType":"ExpressionStatement","src":"16476:28:131"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77293,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"16550:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":77292,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16545:4:131","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16545:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":77295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16566:11:131","memberName":"interfaceId","nodeType":"MemberAccess","src":"16545:32:131","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77290,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77276,"src":"16518:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16527:17:131","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58372,"src":"16518:26:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16518:60:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77302,"nodeType":"IfStatement","src":"16514:113:131","trueBody":{"id":77301,"nodeType":"Block","src":"16580:47:131","statements":[{"expression":{"arguments":[{"id":77298,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77276,"src":"16607:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77297,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"16594:12:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16594:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77300,"nodeType":"ExpressionStatement","src":"16594:22:131"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"16329:19:131","parameters":{"id":77270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77269,"mutability":"mutable","name":"poolId","nameLocation":"16357:6:131","nodeType":"VariableDeclaration","scope":77304,"src":"16349:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77268,"name":"uint256","nodeType":"ElementaryTypeName","src":"16349:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16348:16:131"},"returnParameters":{"id":77271,"nodeType":"ParameterList","parameters":[],"src":"16372:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77317,"nodeType":"FunctionDefinition","src":"16639:120:131","nodes":[],"body":{"id":77316,"nodeType":"Block","src":"16689:70:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77309,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"16699:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16699:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77311,"nodeType":"ExpressionStatement","src":"16699:17:131"},{"expression":{"arguments":[{"id":77313,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"16739:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77312,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"16726:12:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16726:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77315,"nodeType":"ExpressionStatement","src":"16726:26:131"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"16648:11:131","parameters":{"id":77307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77306,"mutability":"mutable","name":"_newStrategy","nameLocation":"16668:12:131","nodeType":"VariableDeclaration","scope":77317,"src":"16660:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77305,"name":"address","nodeType":"ElementaryTypeName","src":"16660:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16659:22:131"},"returnParameters":{"id":77308,"nodeType":"ParameterList","parameters":[],"src":"16689:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77341,"nodeType":"FunctionDefinition","src":"16765:244:131","nodes":[],"body":{"id":77340,"nodeType":"Block","src":"16818:191:131","nodes":[],"statements":[{"condition":{"baseExpression":{"id":77322,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"16832:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77324,"indexExpression":{"id":77323,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"16850:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16832:31:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77329,"nodeType":"IfStatement","src":"16828:85:131","trueBody":{"id":77328,"nodeType":"Block","src":"16865:48:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77325,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76284,"src":"16886:14:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16886:16:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77327,"nodeType":"RevertStatement","src":"16879:23:131"}]}},{"expression":{"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77330,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"16922:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77332,"indexExpression":{"id":77331,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"16940:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16922:31:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16956:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16922:38:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77335,"nodeType":"ExpressionStatement","src":"16922:38:131"},{"eventCall":{"arguments":[{"id":77337,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"16989:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77336,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"16975:13:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16975:27:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77339,"nodeType":"EmitStatement","src":"16970:32:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"16774:12:131","parameters":{"id":77320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77319,"mutability":"mutable","name":"_newStrategy","nameLocation":"16795:12:131","nodeType":"VariableDeclaration","scope":77341,"src":"16787:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77318,"name":"address","nodeType":"ElementaryTypeName","src":"16787:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16786:22:131"},"returnParameters":{"id":77321,"nodeType":"ParameterList","parameters":[],"src":"16818:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77357,"nodeType":"FunctionDefinition","src":"17015:133:131","nodes":[],"body":{"id":77356,"nodeType":"Block","src":"17075:73:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77346,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77343,"src":"17089:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17109:1:131","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":77348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17101:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77347,"name":"address","nodeType":"ElementaryTypeName","src":"17101:7:131","typeDescriptions":{}}},"id":77350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17101:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17089:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77355,"nodeType":"IfStatement","src":"17085:56:131","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77352,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76268,"src":"17120:19:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17120:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77354,"nodeType":"RevertStatement","src":"17113:28:131"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"17024:18:131","parameters":{"id":77344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77343,"mutability":"mutable","name":"_address","nameLocation":"17051:8:131","nodeType":"VariableDeclaration","scope":77357,"src":"17043:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77342,"name":"address","nodeType":"ElementaryTypeName","src":"17043:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17042:18:131"},"returnParameters":{"id":77345,"nodeType":"ParameterList","parameters":[],"src":"17075:0:131"},"scope":77913,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77385,"nodeType":"FunctionDefinition","src":"17154:229:131","nodes":[],"body":{"id":77384,"nodeType":"Block","src":"17209:174:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77362,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"17219:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17219:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77364,"nodeType":"ExpressionStatement","src":"17219:17:131"},{"assignments":[77366],"declarations":[{"constant":false,"id":77366,"mutability":"mutable","name":"strategy","nameLocation":"17254:8:131","nodeType":"VariableDeclaration","scope":77384,"src":"17246:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77365,"name":"address","nodeType":"ElementaryTypeName","src":"17246:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77375,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77371,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77359,"src":"17286:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77369,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"17273:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17278:7:131","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":76052,"src":"17273:12:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17273:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17294:8:131","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17273:29:131","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17265:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77367,"name":"address","nodeType":"ElementaryTypeName","src":"17265:7:131","typeDescriptions":{}}},"id":77374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17265:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17246:57:131"},{"expression":{"arguments":[{"id":77377,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77366,"src":"17332:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77376,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17313:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17313:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77379,"nodeType":"ExpressionStatement","src":"17313:28:131"},{"expression":{"arguments":[{"id":77381,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77366,"src":"17367:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77380,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"17351:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17351:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77383,"nodeType":"ExpressionStatement","src":"17351:25:131"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"17163:22:131","parameters":{"id":77360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77359,"mutability":"mutable","name":"poolId","nameLocation":"17194:6:131","nodeType":"VariableDeclaration","scope":77385,"src":"17186:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77358,"name":"uint256","nodeType":"ElementaryTypeName","src":"17186:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17185:16:131"},"returnParameters":{"id":77361,"nodeType":"ParameterList","parameters":[],"src":"17209:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77405,"nodeType":"FunctionDefinition","src":"17389:186:131","nodes":[],"body":{"id":77404,"nodeType":"Block","src":"17442:133:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":77391,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"17471:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77390,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17452:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17452:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77393,"nodeType":"ExpressionStatement","src":"17452:29:131"},{"expression":{"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77394,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"17491:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77396,"indexExpression":{"id":77395,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"17509:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17491:28:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":77397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17522:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17491:36:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77399,"nodeType":"ExpressionStatement","src":"17491:36:131"},{"eventCall":{"arguments":[{"id":77401,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"17558:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77400,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76130,"src":"17542:15:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17542:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77403,"nodeType":"EmitStatement","src":"17537:31:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"17398:15:131","parameters":{"id":77388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77387,"mutability":"mutable","name":"_strategy","nameLocation":"17422:9:131","nodeType":"VariableDeclaration","scope":77405,"src":"17414:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77386,"name":"address","nodeType":"ElementaryTypeName","src":"17414:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17413:19:131"},"returnParameters":{"id":77389,"nodeType":"ParameterList","parameters":[],"src":"17442:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77418,"nodeType":"FunctionDefinition","src":"17581:120:131","nodes":[],"body":{"id":77417,"nodeType":"Block","src":"17631:70:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77410,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"17641:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77412,"nodeType":"ExpressionStatement","src":"17641:17:131"},{"expression":{"arguments":[{"id":77414,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77407,"src":"17684:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77413,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"17668:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17668:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77416,"nodeType":"ExpressionStatement","src":"17668:26:131"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"17590:14:131","parameters":{"id":77408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77407,"mutability":"mutable","name":"_strategy","nameLocation":"17613:9:131","nodeType":"VariableDeclaration","scope":77418,"src":"17605:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77406,"name":"address","nodeType":"ElementaryTypeName","src":"17605:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17604:19:131"},"returnParameters":{"id":77409,"nodeType":"ParameterList","parameters":[],"src":"17631:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77443,"nodeType":"FunctionDefinition","src":"17707:240:131","nodes":[],"body":{"id":77442,"nodeType":"Block","src":"17761:186:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77423,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"17771:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17771:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77425,"nodeType":"ExpressionStatement","src":"17771:17:131"},{"expression":{"arguments":[{"id":77427,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77420,"src":"17817:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77426,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17798:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17798:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77429,"nodeType":"ExpressionStatement","src":"17798:25:131"},{"expression":{"id":77432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77430,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"17833:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77431,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77420,"src":"17854:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17833:26:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":77433,"nodeType":"ExpressionStatement","src":"17833:26:131"},{"eventCall":{"arguments":[{"arguments":[{"id":77437,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"17907:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}],"id":77436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17899:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77435,"name":"address","nodeType":"ElementaryTypeName","src":"17899:7:131","typeDescriptions":{}}},"id":77438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17899:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77439,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"17921:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77434,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76089,"src":"17874:24:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":77440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17874:66:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77441,"nodeType":"EmitStatement","src":"17869:71:131"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"17716:14:131","parameters":{"id":77421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77420,"mutability":"mutable","name":"_safe","nameLocation":"17747:5:131","nodeType":"VariableDeclaration","scope":77443,"src":"17731:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77419,"name":"address","nodeType":"ElementaryTypeName","src":"17731:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"17730:23:131"},"returnParameters":{"id":77422,"nodeType":"ParameterList","parameters":[],"src":"17761:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77460,"nodeType":"FunctionDefinition","src":"17953:179:131","nodes":[],"body":{"id":77459,"nodeType":"Block","src":"17992:140:131","nodes":[],"statements":[{"expression":{"id":77450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77446,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"18002:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77448,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18022:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77447,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"18016:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75799_$","typeString":"type(contract ISafe)"}},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18016:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"src":"18002:39:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"id":77451,"nodeType":"ExpressionStatement","src":"18002:39:131"},{"expression":{"id":77453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18051:25:131","subExpression":{"id":77452,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18058:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77454,"nodeType":"ExpressionStatement","src":"18051:25:131"},{"eventCall":{"arguments":[{"id":77456,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18106:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77455,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"18091:14:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18091:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77458,"nodeType":"EmitStatement","src":"18086:39:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"17962:18:131","parameters":{"id":77444,"nodeType":"ParameterList","parameters":[],"src":"17980:2:131"},"returnParameters":{"id":77445,"nodeType":"ParameterList","parameters":[],"src":"17992:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77476,"nodeType":"FunctionDefinition","src":"18138:171:131","nodes":[],"body":{"id":77475,"nodeType":"Block","src":"18174:135:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18188:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18192:6:131","memberName":"sender","nodeType":"MemberAccess","src":"18188:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77465,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18202:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"18188:32:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77471,"nodeType":"IfStatement","src":"18184:89:131","trueBody":{"id":77470,"nodeType":"Block","src":"18222:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77467,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76288,"src":"18243:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18243:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77469,"nodeType":"RevertStatement","src":"18236:26:131"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77472,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77460,"src":"18282:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18282:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77474,"nodeType":"ExpressionStatement","src":"18282:20:131"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"18147:17:131","parameters":{"id":77461,"nodeType":"ParameterList","parameters":[],"src":"18164:2:131"},"returnParameters":{"id":77462,"nodeType":"ParameterList","parameters":[],"src":"18174:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77494,"nodeType":"FunctionDefinition","src":"18315:182:131","nodes":[],"body":{"id":77493,"nodeType":"Block","src":"18387:110:131","nodes":[],"statements":[{"assignments":[77485],"declarations":[{"constant":false,"id":77485,"mutability":"mutable","name":"newMember","nameLocation":"18411:9:131","nodeType":"VariableDeclaration","scope":77493,"src":"18397:23:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77484,"nodeType":"UserDefinedTypeName","pathNode":{"id":77483,"name":"Member","nameLocations":["18397:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"18397:6:131"},"referencedDeclaration":76313,"src":"18397:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77489,"initialValue":{"baseExpression":{"id":77486,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"18423:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77488,"indexExpression":{"id":77487,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77478,"src":"18443:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18423:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18397:54:131"},{"expression":{"expression":{"id":77490,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77485,"src":"18468:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18478:12:131","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76312,"src":"18468:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77482,"id":77492,"nodeType":"Return","src":"18461:29:131"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"18324:8:131","parameters":{"id":77479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77478,"mutability":"mutable","name":"_member","nameLocation":"18341:7:131","nodeType":"VariableDeclaration","scope":77494,"src":"18333:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77477,"name":"address","nodeType":"ElementaryTypeName","src":"18333:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18332:17:131"},"returnParameters":{"id":77482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77481,"mutability":"mutable","name":"_isMember","nameLocation":"18376:9:131","nodeType":"VariableDeclaration","scope":77494,"src":"18371:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77480,"name":"bool","nodeType":"ElementaryTypeName","src":"18371:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18370:16:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77653,"nodeType":"FunctionDefinition","src":"18503:1907:131","nodes":[],"body":{"id":77652,"nodeType":"Block","src":"18557:1853:131","nodes":[],"statements":[{"assignments":[77500],"declarations":[{"constant":false,"id":77500,"mutability":"mutable","name":"_member","nameLocation":"18575:7:131","nodeType":"VariableDeclaration","scope":77652,"src":"18567:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77499,"name":"address","nodeType":"ElementaryTypeName","src":"18567:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77503,"initialValue":{"expression":{"id":77501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18585:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18589:6:131","memberName":"sender","nodeType":"MemberAccess","src":"18585:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18567:28:131"},{"assignments":[77506],"declarations":[{"constant":false,"id":77506,"mutability":"mutable","name":"newMember","nameLocation":"18620:9:131","nodeType":"VariableDeclaration","scope":77652,"src":"18605:24:131","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77505,"nodeType":"UserDefinedTypeName","pathNode":{"id":77504,"name":"Member","nameLocations":["18605:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"18605:6:131"},"referencedDeclaration":76313,"src":"18605:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77510,"initialValue":{"baseExpression":{"id":77507,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"18632:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77509,"indexExpression":{"id":77508,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"18652:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18632:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18605:55:131"},{"assignments":[77513],"declarations":[{"constant":false,"id":77513,"mutability":"mutable","name":"gardensFactory","nameLocation":"18686:14:131","nodeType":"VariableDeclaration","scope":77652,"src":"18670:30:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"},"typeName":{"id":77512,"nodeType":"UserDefinedTypeName","pathNode":{"id":77511,"name":"RegistryFactory","nameLocations":["18670:15:131"],"nodeType":"IdentifierPath","referencedDeclaration":78149,"src":"18670:15:131"},"referencedDeclaration":78149,"src":"18670:15:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77517,"initialValue":{"arguments":[{"id":77515,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"18719:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77514,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"18703:15:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$78149_$","typeString":"type(contract RegistryFactory)"}},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18703:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"18670:65:131"},{"assignments":[77519],"declarations":[{"constant":false,"id":77519,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"18753:18:131","nodeType":"VariableDeclaration","scope":77652,"src":"18745:26:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77518,"name":"uint256","nodeType":"ElementaryTypeName","src":"18745:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77529,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77520,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"18775:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77521,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"18797:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18775:34:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77523,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18774:36:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18814:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77525,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"18820:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18814:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18813:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18774:62:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18745:91:131"},{"assignments":[77531],"declarations":[{"constant":false,"id":77531,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"18854:16:131","nodeType":"VariableDeclaration","scope":77652,"src":"18846:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77530,"name":"uint256","nodeType":"ElementaryTypeName","src":"18846:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77547,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77532,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"18886:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77537,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18946:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18938:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77535,"name":"address","nodeType":"ElementaryTypeName","src":"18938:7:131","typeDescriptions":{}}},"id":77538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18938:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77533,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"18908:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18923:14:131","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":78148,"src":"18908:29:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18908:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18886:66:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18885:68:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18957:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77543,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"18963:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18957:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18885:94:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18846:133:131"},{"condition":{"id":77551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18993:18:131","subExpression":{"arguments":[{"id":77549,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"19003:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77548,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"18994:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18994:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77651,"nodeType":"IfStatement","src":"18989:1415:131","trueBody":{"id":77650,"nodeType":"Block","src":"19013:1391:131","statements":[{"expression":{"id":77556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77552,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77506,"src":"19027:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19037:12:131","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76312,"src":"19027:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19052:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19027:29:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77557,"nodeType":"ExpressionStatement","src":"19027:29:131"},{"expression":{"id":77562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77558,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77506,"src":"19071:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19081:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"19071:22:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77561,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"19096:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19071:44:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77563,"nodeType":"ExpressionStatement","src":"19071:44:131"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":77567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19213:13:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":77570,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"19236:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":77569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19228:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77568,"name":"address","nodeType":"ElementaryTypeName","src":"19228:7:131","typeDescriptions":{}}},"id":77571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77564,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"19201:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19209:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"19201:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77573,"nodeType":"ExpressionStatement","src":"19201:48:131"},{"expression":{"arguments":[{"id":77577,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"19310:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77580,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19327:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19319:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77578,"name":"address","nodeType":"ElementaryTypeName","src":"19319:7:131","typeDescriptions":{}}},"id":77581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19319:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77582,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"19334:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77583,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19356:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77585,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"19377:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:59:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77574,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"19264:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19276:16:131","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57238,"src":"19264:28:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19264:143:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77588,"nodeType":"ExpressionStatement","src":"19264:143:131"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":77592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19770:20:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":77593,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19792:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77589,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"19758:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19766:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"19758:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19758:53:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77595,"nodeType":"ExpressionStatement","src":"19758:53:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77596,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19829:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19850:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19829:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77614,"nodeType":"IfStatement","src":"19825:175:131","trueBody":{"id":77613,"nodeType":"Block","src":"19853:147:131","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":77602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19883:13:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":77603,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"19898:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77599,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"19871:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19879:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"19871:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77605,"nodeType":"ExpressionStatement","src":"19871:39:131"},{"expression":{"arguments":[{"id":77609,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"19953:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77610,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19966:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77606,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"19928:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19940:12:131","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":57211,"src":"19928:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19928:57:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77612,"nodeType":"ExpressionStatement","src":"19928:57:131"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":77618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20025:18:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":77619,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"20045:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77615,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"20013:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20021:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"20013:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20013:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77621,"nodeType":"ExpressionStatement","src":"20013:49:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77622,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"20080:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20099:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20080:20:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77644,"nodeType":"IfStatement","src":"20076:252:131","trueBody":{"id":77643,"nodeType":"Block","src":"20102:226:131","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":77628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20132:40:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77629,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"20174:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20189:21:131","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":78067,"src":"20174:36:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77625,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"20120:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20128:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"20120:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20120:93:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77633,"nodeType":"ExpressionStatement","src":"20120:93:131"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77637,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"20256:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20271:21:131","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":78067,"src":"20256:36:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20256:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77640,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"20296:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77634,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"20231:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20243:12:131","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":57211,"src":"20231:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20231:82:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77642,"nodeType":"ExpressionStatement","src":"20231:82:131"}]}},{"eventCall":{"arguments":[{"id":77646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"20364:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77647,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20373:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77645,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76095,"src":"20347:16:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20347:46:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77649,"nodeType":"EmitStatement","src":"20342:51:131"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":77497,"kind":"modifierInvocation","modifierName":{"id":77496,"name":"nonReentrant","nameLocations":["18544:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"18544:12:131"},"nodeType":"ModifierInvocation","src":"18544:12:131"}],"name":"stakeAndRegisterMember","nameLocation":"18512:22:131","parameters":{"id":77495,"nodeType":"ParameterList","parameters":[],"src":"18534:2:131"},"returnParameters":{"id":77498,"nodeType":"ParameterList","parameters":[],"src":"18557:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77702,"nodeType":"FunctionDefinition","src":"20416:467:131","nodes":[],"body":{"id":77701,"nodeType":"Block","src":"20480:403:131","nodes":[],"statements":[{"assignments":[77660],"declarations":[{"constant":false,"id":77660,"mutability":"mutable","name":"gardensFactory","nameLocation":"20506:14:131","nodeType":"VariableDeclaration","scope":77701,"src":"20490:30:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"},"typeName":{"id":77659,"nodeType":"UserDefinedTypeName","pathNode":{"id":77658,"name":"RegistryFactory","nameLocations":["20490:15:131"],"nodeType":"IdentifierPath","referencedDeclaration":78149,"src":"20490:15:131"},"referencedDeclaration":78149,"src":"20490:15:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77664,"initialValue":{"arguments":[{"id":77662,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"20539:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77661,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"20523:15:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$78149_$","typeString":"type(contract RegistryFactory)"}},"id":77663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20523:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20490:65:131"},{"assignments":[77666],"declarations":[{"constant":false,"id":77666,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20573:18:131","nodeType":"VariableDeclaration","scope":77701,"src":"20565:26:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77665,"name":"uint256","nodeType":"ElementaryTypeName","src":"20565:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77676,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77667,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20595:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77668,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"20617:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:34:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20594:36:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77672,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"20640:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20634:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77674,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20633:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20594:62:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20565:91:131"},{"assignments":[77678],"declarations":[{"constant":false,"id":77678,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20674:16:131","nodeType":"VariableDeclaration","scope":77701,"src":"20666:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77677,"name":"uint256","nodeType":"ElementaryTypeName","src":"20666:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77694,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77679,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20706:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77684,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20766:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20758:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77682,"name":"address","nodeType":"ElementaryTypeName","src":"20758:7:131","typeDescriptions":{}}},"id":77685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77680,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77660,"src":"20728:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20743:14:131","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":78148,"src":"20728:29:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20728:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20706:66:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77688,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20705:68:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20777:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77690,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"20783:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20777:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77692,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20776:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20705:94:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20666:133:131"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77695,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20817:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77696,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77666,"src":"20839:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77698,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77678,"src":"20860:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:59:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77657,"id":77700,"nodeType":"Return","src":"20810:66:131"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"20425:22:131","parameters":{"id":77654,"nodeType":"ParameterList","parameters":[],"src":"20447:2:131"},"returnParameters":{"id":77657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77702,"src":"20471:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77655,"name":"uint256","nodeType":"ElementaryTypeName","src":"20471:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20470:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77710,"nodeType":"FunctionDefinition","src":"20889:107:131","nodes":[],"body":{"id":77709,"nodeType":"Block","src":"20953:43:131","nodes":[],"statements":[{"expression":{"id":77707,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20970:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77706,"id":77708,"nodeType":"Return","src":"20963:26:131"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"20898:20:131","parameters":{"id":77703,"nodeType":"ParameterList","parameters":[],"src":"20918:2:131"},"returnParameters":{"id":77706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77710,"src":"20944:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77704,"name":"uint256","nodeType":"ElementaryTypeName","src":"20944:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20943:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77727,"nodeType":"FunctionDefinition","src":"21002:182:131","nodes":[],"body":{"id":77726,"nodeType":"Block","src":"21061:123:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77715,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"21071:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21071:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77717,"nodeType":"ExpressionStatement","src":"21071:17:131"},{"expression":{"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77718,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"21098:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77719,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77712,"src":"21120:10:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21098:32:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77721,"nodeType":"ExpressionStatement","src":"21098:32:131"},{"eventCall":{"arguments":[{"id":77723,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77712,"src":"21166:10:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77722,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76148,"src":"21145:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21145:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77725,"nodeType":"EmitStatement","src":"21140:37:131"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"21011:20:131","parameters":{"id":77713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77712,"mutability":"mutable","name":"_newAmount","nameLocation":"21040:10:131","nodeType":"VariableDeclaration","scope":77727,"src":"21032:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77711,"name":"uint256","nodeType":"ElementaryTypeName","src":"21032:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21031:20:131"},"returnParameters":{"id":77714,"nodeType":"ParameterList","parameters":[],"src":"21061:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77752,"nodeType":"FunctionDefinition","src":"21190:280:131","nodes":[],"body":{"id":77751,"nodeType":"Block","src":"21248:222:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77732,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"21258:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21258:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77734,"nodeType":"ExpressionStatement","src":"21258:17:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77735,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"21289:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77736,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76419,"src":"21308:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21289:26:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77742,"nodeType":"IfStatement","src":"21285:86:131","trueBody":{"id":77741,"nodeType":"Block","src":"21317:54:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77738,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76294,"src":"21338:20:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21338:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77740,"nodeType":"RevertStatement","src":"21331:29:131"}]}},{"expression":{"id":77745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77743,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"21380:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77744,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"21395:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21380:31:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77746,"nodeType":"ExpressionStatement","src":"21380:31:131"},{"eventCall":{"arguments":[{"id":77748,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"21446:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77747,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76113,"src":"21426:19:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21426:37:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77750,"nodeType":"EmitStatement","src":"21421:42:131"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"21199:15:131","parameters":{"id":77730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77729,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"21223:16:131","nodeType":"VariableDeclaration","scope":77752,"src":"21215:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77728,"name":"uint256","nodeType":"ElementaryTypeName","src":"21215:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21214:26:131"},"returnParameters":{"id":77731,"nodeType":"ParameterList","parameters":[],"src":"21248:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77765,"nodeType":"FunctionDefinition","src":"21512:132:131","nodes":[],"body":{"id":77764,"nodeType":"Block","src":"21581:63:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":77760,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"21606:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77761,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77754,"src":"21629:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77759,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55289,"src":"21598:7:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21598:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77758,"id":77763,"nodeType":"Return","src":"21591:46:131"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"21521:15:131","parameters":{"id":77755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77754,"mutability":"mutable","name":"_member","nameLocation":"21545:7:131","nodeType":"VariableDeclaration","scope":77765,"src":"21537:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77753,"name":"address","nodeType":"ElementaryTypeName","src":"21537:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21536:17:131"},"returnParameters":{"id":77758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77765,"src":"21575:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77756,"name":"bool","nodeType":"ElementaryTypeName","src":"21575:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21574:6:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77815,"nodeType":"FunctionDefinition","src":"21650:453:131","nodes":[],"body":{"id":77814,"nodeType":"Block","src":"21698:405:131","nodes":[],"statements":[{"assignments":[77771],"declarations":[{"constant":false,"id":77771,"mutability":"mutable","name":"_member","nameLocation":"21716:7:131","nodeType":"VariableDeclaration","scope":77814,"src":"21708:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77770,"name":"address","nodeType":"ElementaryTypeName","src":"21708:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77774,"initialValue":{"expression":{"id":77772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21726:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21730:6:131","memberName":"sender","nodeType":"MemberAccess","src":"21726:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21708:28:131"},{"expression":{"arguments":[{"id":77776,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21772:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77775,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"21746:25:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21746:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77778,"nodeType":"ExpressionStatement","src":"21746:34:131"},{"expression":{"arguments":[{"id":77780,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21814:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77779,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77852,"src":"21790:23:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21790:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77782,"nodeType":"ExpressionStatement","src":"21790:32:131"},{"assignments":[77785],"declarations":[{"constant":false,"id":77785,"mutability":"mutable","name":"member","nameLocation":"21846:6:131","nodeType":"VariableDeclaration","scope":77814,"src":"21832:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77784,"nodeType":"UserDefinedTypeName","pathNode":{"id":77783,"name":"Member","nameLocations":["21832:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"21832:6:131"},"referencedDeclaration":76313,"src":"21832:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77789,"initialValue":{"baseExpression":{"id":77786,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"21855:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77788,"indexExpression":{"id":77787,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21875:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21855:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21832:51:131"},{"expression":{"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21893:35:131","subExpression":{"baseExpression":{"id":77790,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"21900:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77792,"indexExpression":{"id":77791,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21920:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21900:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"21893:35:131"},{"expression":{"id":77798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21938:34:131","subExpression":{"baseExpression":{"id":77795,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"21945:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77797,"indexExpression":{"id":77796,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21964:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21945:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77799,"nodeType":"ExpressionStatement","src":"21938:34:131"},{"expression":{"arguments":[{"id":77803,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"22004:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77804,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77785,"src":"22013:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22020:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"22013:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77800,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"21983:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21995:8:131","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":57084,"src":"21983:20:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21983:50:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77807,"nodeType":"ExpressionStatement","src":"21983:50:131"},{"eventCall":{"arguments":[{"id":77809,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"22067:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77810,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77785,"src":"22076:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22083:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"22076:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77808,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76101,"src":"22048:18:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77813,"nodeType":"EmitStatement","src":"22043:53:131"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":77768,"kind":"modifierInvocation","modifierName":{"id":77767,"name":"nonReentrant","nameLocations":["21685:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"21685:12:131"},"nodeType":"ModifierInvocation","src":"21685:12:131"}],"name":"unregisterMember","nameLocation":"21659:16:131","parameters":{"id":77766,"nodeType":"ParameterList","parameters":[],"src":"21675:2:131"},"returnParameters":{"id":77769,"nodeType":"ParameterList","parameters":[],"src":"21698:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77852,"nodeType":"FunctionDefinition","src":"22109:466:131","nodes":[],"body":{"id":77851,"nodeType":"Block","src":"22168:407:131","nodes":[],"statements":[{"assignments":[77824],"declarations":[{"constant":false,"id":77824,"mutability":"mutable","name":"memberStrategies","nameLocation":"22195:16:131","nodeType":"VariableDeclaration","scope":77851,"src":"22178:33:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77822,"name":"address","nodeType":"ElementaryTypeName","src":"22178:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77823,"nodeType":"ArrayTypeName","src":"22178:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77828,"initialValue":{"baseExpression":{"id":77825,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"22214:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77827,"indexExpression":{"id":77826,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77817,"src":"22233:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22214:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22178:63:131"},{"body":{"id":77849,"nodeType":"Block","src":"22371:198:131","statements":[{"expression":{"arguments":[{"id":77846,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77817,"src":"22550:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":77841,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77824,"src":"22512:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77843,"indexExpression":{"id":77842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77830,"src":"22529:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22512:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77840,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"22497:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":77844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:35:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22533:16:131","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72997,"src":"22497:52:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:61:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77848,"nodeType":"ExpressionStatement","src":"22497:61:131"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77830,"src":"22337:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77834,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77824,"src":"22341:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:6:131","memberName":"length","nodeType":"MemberAccess","src":"22341:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22337:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77850,"initializationExpression":{"assignments":[77830],"declarations":[{"constant":false,"id":77830,"mutability":"mutable","name":"i","nameLocation":"22330:1:131","nodeType":"VariableDeclaration","scope":77850,"src":"22322:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77832,"initialValue":{"hexValue":"30","id":77831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22334:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22322:13:131"},"loopExpression":{"expression":{"id":77838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22366:3:131","subExpression":{"id":77837,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77830,"src":"22366:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77839,"nodeType":"ExpressionStatement","src":"22366:3:131"},"nodeType":"ForStatement","src":"22317:252:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"22118:23:131","parameters":{"id":77818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77817,"mutability":"mutable","name":"_member","nameLocation":"22150:7:131","nodeType":"VariableDeclaration","scope":77852,"src":"22142:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77816,"name":"address","nodeType":"ElementaryTypeName","src":"22142:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22141:17:131"},"returnParameters":{"id":77819,"nodeType":"ParameterList","parameters":[],"src":"22168:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77912,"nodeType":"FunctionDefinition","src":"22581:571:131","nodes":[],"body":{"id":77911,"nodeType":"Block","src":"22664:488:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77861,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"22674:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22674:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77863,"nodeType":"ExpressionStatement","src":"22674:17:131"},{"condition":{"id":77865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22705:14:131","subExpression":{"id":77864,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76348,"src":"22706:13:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77870,"nodeType":"IfStatement","src":"22701:68:131","trueBody":{"id":77869,"nodeType":"Block","src":"22721:48:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77866,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"22742:14:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22742:16:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77868,"nodeType":"RevertStatement","src":"22735:23:131"}]}},{"condition":{"id":77874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22782:18:131","subExpression":{"arguments":[{"id":77872,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22792:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77871,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"22783:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22783:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77879,"nodeType":"IfStatement","src":"22778:75:131","trueBody":{"id":77878,"nodeType":"Block","src":"22802:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77875,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"22823:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22823:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77877,"nodeType":"RevertStatement","src":"22816:26:131"}]}},{"assignments":[77882],"declarations":[{"constant":false,"id":77882,"mutability":"mutable","name":"member","nameLocation":"22876:6:131","nodeType":"VariableDeclaration","scope":77911,"src":"22862:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77881,"nodeType":"UserDefinedTypeName","pathNode":{"id":77880,"name":"Member","nameLocations":["22862:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"22862:6:131"},"referencedDeclaration":76313,"src":"22862:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77886,"initialValue":{"baseExpression":{"id":77883,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"22885:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77885,"indexExpression":{"id":77884,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22905:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22885:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22862:51:131"},{"expression":{"arguments":[{"id":77888,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22947:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77887,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77852,"src":"22923:23:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22923:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77890,"nodeType":"ExpressionStatement","src":"22923:32:131"},{"expression":{"id":77894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"22965:35:131","subExpression":{"baseExpression":{"id":77891,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"22972:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77893,"indexExpression":{"id":77892,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22992:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22972:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77895,"nodeType":"ExpressionStatement","src":"22965:35:131"},{"expression":{"arguments":[{"id":77899,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77856,"src":"23032:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77900,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"23050:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23057:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"23050:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77896,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"23011:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23023:8:131","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":57084,"src":"23011:20:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23011:59:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77903,"nodeType":"ExpressionStatement","src":"23011:59:131"},{"eventCall":{"arguments":[{"id":77905,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"23098:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77906,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77856,"src":"23107:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77907,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"23125:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23132:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"23125:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77904,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76109,"src":"23085:12:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":77909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23085:60:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77910,"nodeType":"EmitStatement","src":"23080:65:131"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":77859,"kind":"modifierInvocation","modifierName":{"id":77858,"name":"nonReentrant","nameLocations":["22651:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"22651:12:131"},"nodeType":"ModifierInvocation","src":"22651:12:131"}],"name":"kickMember","nameLocation":"22590:10:131","parameters":{"id":77857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77854,"mutability":"mutable","name":"_member","nameLocation":"22609:7:131","nodeType":"VariableDeclaration","scope":77912,"src":"22601:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77853,"name":"address","nodeType":"ElementaryTypeName","src":"22601:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77856,"mutability":"mutable","name":"_transferAddress","nameLocation":"22626:16:131","nodeType":"VariableDeclaration","scope":77912,"src":"22618:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77855,"name":"address","nodeType":"ElementaryTypeName","src":"22618:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22600:43:131"},"returnParameters":{"id":77860,"nodeType":"ParameterList","parameters":[],"src":"22664:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":76054,"name":"ReentrancyGuard","nameLocations":["1660:15:131"],"nodeType":"IdentifierPath","referencedDeclaration":56326,"src":"1660:15:131"},"id":76055,"nodeType":"InheritanceSpecifier","src":"1660:15:131"},{"baseName":{"id":76056,"name":"AccessControl","nameLocations":["1677:13:131"],"nodeType":"IdentifierPath","referencedDeclaration":55525,"src":"1677:13:131"},"id":76057,"nodeType":"InheritanceSpecifier","src":"1677:13:131"}],"canonicalName":"RegistryCommunity","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77913,55525,58322,58528,55598,57959,56326],"name":"RegistryCommunity","nameLocation":"1639:17:131","scope":77914,"usedErrors":[76268,76270,76272,76274,76276,76278,76280,76282,76284,76286,76288,76290,76292,76294,76296,76298,76300,76306]}],"license":"AGPL-3.0-only"},"id":131} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json b/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json index b688dfbed..ee50118e5 100644 --- a/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json +++ b/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"COUNCIL_MEMBER_CHANGE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PRECISION_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"acceptCouncilSafe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"activateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategy","inputs":[{"name":"_newStrategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addressToMemberInfo","inputs":[{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"member","type":"address","internalType":"address"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FAllo"}],"stateMutability":"view"},{"type":"function","name":"cloneNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"councilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISafe"}],"stateMutability":"view"},{"type":"function","name":"covenantIpfsHash","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"createPool","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"_strategy","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deactivateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_amountUnstaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enabledStrategies","inputs":[{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isEnabled","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"feeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"gardenToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getBasisStakedAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberPowerInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberStakedAmount","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStakeAmountWithFees","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"increasePower","inputs":[{"name":"_amountStaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCouncilMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isKickEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"_isMember","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"kickMember","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_transferAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"memberActivatedInStrategies","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isActivated","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberPowerInStrategy","inputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"power","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingCouncilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"profileId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerStakeAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"registryFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasisStakedAmount","inputs":[{"name":"_newAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityFee","inputs":[{"name":"_newCommunityFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCouncilSafe","inputs":[{"name":"_safe","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"strategiesByMember","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategiesAddresses","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"strategyTemplate","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AlloSet","inputs":[{"name":"_allo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BasisStakedAmountSet","inputs":[{"name":"_newAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CommunityFeeUpdated","inputs":[{"name":"_newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CouncilSafeChangeStarted","inputs":[{"name":"_safeOwner","type":"address","indexed":false,"internalType":"address"},{"name":"_newSafeOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CouncilSafeSet","inputs":[{"name":"_safe","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberActivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberDeactivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberKicked","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_transferAddress","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerDecreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_unstakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerIncreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_stakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountStaked","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"_poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_token","type":"address","indexed":false,"internalType":"address"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryInitialized","inputs":[{"name":"_profileId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_communityName","type":"string","indexed":false,"internalType":"string"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyAdded","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CantDecreaseMoreThanPower","inputs":[{"name":"_decreaseAmount","type":"uint256","internalType":"uint256"},{"name":"_currentPower","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DecreaseUnderMinimum","inputs":[]},{"type":"error","name":"KickNotEnabled","inputs":[]},{"type":"error","name":"NewFeeGreaterThanMax","inputs":[]},{"type":"error","name":"PointsDeactivated","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SenderNotNewOwner","inputs":[]},{"type":"error","name":"SenderNotStrategy","inputs":[]},{"type":"error","name":"StrategyDisabled","inputs":[]},{"type":"error","name":"StrategyExists","inputs":[]},{"type":"error","name":"UserAlreadyActivated","inputs":[]},{"type":"error","name":"UserAlreadyDeactivated","inputs":[]},{"type":"error","name":"UserAlreadyRegistered","inputs":[]},{"type":"error","name":"UserNotGardenOwner","inputs":[]},{"type":"error","name":"UserNotInCouncil","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ValueCannotBeZero","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220bca611242a8026815b84fc06ce7414f9a0771fe120a1bdebef2c9f513c6e0a7f64736f6c63430008130033","sourceMap":"1630:21524:113:-:0;;;7758:145;;;;;;;;;-1:-1:-1;1716:1:28;1821:7;:22;;;7840:56:113;;2090:34;;7840:13;:56::i;:::-;1630:21524;;7172:247:25;7255:25;4604:12;;;:6;:12;;;;;;;;:22;;;;;7311:34;;;;7360:52;;4604:22;;7311:34;;4604:22;;:12;;7360:52;;7255:25;7360:52;7245:174;7172:247;;:::o;1630:21524:113:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220bca611242a8026815b84fc06ce7414f9a0771fe120a1bdebef2c9f513c6e0a7f64736f6c63430008130033","sourceMap":"1630:21524:113:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:25;;;;;;:::i;:::-;;:::i;:::-;;;516:14:123;;509:22;491:41;;479:2;464:18;2732:202:25;;;;;;;;20889:107:113;20970:19;;20889:107;;;689:25:123;;;677:2;662:18;20889:107:113;543:177:123;6534:24:113;;;;;;21190:280;;;;;;:::i;:::-;;:::i;:::-;;10866:1179;;;;;;:::i;:::-;;:::i;17581:120::-;;;;;;:::i;:::-;;:::i;6292:25::-;;;;;;;;;16639:120;;;;;;:::i;:::-;;:::i;12051:691::-;;;;;;:::i;:::-;;:::i;4504:129:25:-;;;;;;:::i;:::-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;;4504:129;20416:467:113;;;:::i;7409:82::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2704:55:123;;;2686:74;;2674:2;2659:18;7409:82:113;2540:226:123;16048:143:113;;;;;;:::i;:::-;-1:-1:-1;;;;;16143:28:113;16117:7;16143:28;;;:19;:28;;;;;:41;;;;16048:143;4929:145:25;;;;;;:::i;:::-;;:::i;21002:182:113:-;;;;;;:::i;:::-;;:::i;6714:25::-;;;;;;18503:1907;;;:::i;6038:214:25:-;;;;;;:::i;:::-;;:::i;17707:240:113:-;;;;;;:::i;:::-;;:::i;7164:68::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7497:107;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13179:998;;;;;;:::i;:::-;;:::i;6677:31::-;;;;;-1:-1:-1;;;;;6677:31:113;;;14317:1554;;;;;;:::i;:::-;;:::i;7238:98::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22581:571;;;;;;:::i;:::-;;:::i;6745:41::-;;;;;-1:-1:-1;;;;;6745:41:113;;;6926:24;;;;;-1:-1:-1;;;;;6926:24:113;;;17154:229;;;;;;:::i;:::-;;:::i;15877:165::-;;;;;;:::i;:::-;-1:-1:-1;;;;;15994:30:113;;;15968:7;15994:30;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;;15877:165;6461:34;;;;;;6864:25;;;;;-1:-1:-1;;;;;6864:25:113;;;16320:313;;;;;;:::i;:::-;;:::i;7343:60::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7343:60:113;;;;;;;;;;;;;-1:-1:-1;;;;;4307:55:123;;;4289:74;;4394:2;4379:18;;4372:34;;;;4449:14;4442:22;4422:18;;;4415:50;4277:2;4262:18;7343:60:113;4093:378:123;6501:27:113;;;;;;3021:145:25;;;;;;:::i;:::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:25;;;;;;;;;;;;;;;3021:145;7909:1945:113;;;;;;:::i;:::-;;:::i;9860:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;11918:25:123;;;-1:-1:-1;;;;;11979:55:123;;;11974:2;11959:18;;11952:83;11891:18;9860:341:113;11744:297:123;2042:82:113;;2090:34;2042:82;;1796:75;;1829:42;1796:75;;2153:49:25;;2198:4;2153:49;;18315:182:113;;;;;;:::i;:::-;-1:-1:-1;;;;;18423:28:113;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18315:182;6609:26;;;;;-1:-1:-1;;;;;6609:26:113;;;18138:171;;;:::i;7070:30::-;;;:::i;:::-;;;;;;;:::i;21650:453::-;;;:::i;7697:54::-;;;:::i;7037:27::-;;;:::i;10207:653::-;;;;;;:::i;:::-;;:::i;5354:147:25:-;;;;;;:::i;:::-;;:::i;6956:17:113:-;;;;;-1:-1:-1;;;;;6956:17:113;;;7642:49;;7684:7;7642:49;;6895:25;;;;;-1:-1:-1;;;;;6895:25:113;;;21512:132;;;;;;:::i;:::-;;:::i;6641:30::-;;;;;-1:-1:-1;;;;;6641:30:113;;;2732:202:25;2817:4;-1:-1:-1;;;;;;2840:47:25;;2855:32;2840:47;;:87;;-1:-1:-1;;;;;;;;;;937:40:37;;;2891:36:25;2833:94;2732:202;-1:-1:-1;;2732:202:25:o;21190:280:113:-;21258:17;:15;:17::i;:::-;7731:20;7684:7;7731:2;:20;:::i;:::-;21289:16;:26;21285:86;;;21338:22;;;;;;;;;;;;;;21285:86;21380:12;:31;;;21426:37;;689:25:123;;;21426:37:113;;677:2:123;662:18;21426:37:113;;;;;;;;21190:280;:::o;10866:1179::-;10953:34;10979:7;10953:25;:34::i;:::-;10997:30;11017:9;10997:19;:30::i;:::-;11037:29;11056:9;11037:18;:29::i;:::-;-1:-1:-1;;;;;11081:36:113;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;11077:107;;;11151:22;;;;;;;;;;;;;;11077:107;-1:-1:-1;;;;;11217:28:113;;;11194:20;11217:28;;;:19;:28;;;;;;;;;11194:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11340:19;;;;11389:9;-1:-1:-1;;;;;11374:40:113;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;;;;;;:::i;:::-;;11370:384;;11491:51;;-1:-1:-1;;;11491:51:113;;-1:-1:-1;;;;;15091:55:123;;;11491:51:113;;;15073:74:123;11540:1:113;15163:18:123;;;15156:34;11491:39:113;;;;;15046:18:123;;11491:51:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11472:70;;11370:384;;;11609:32;11578:9;-1:-1:-1;;;;;11563:40:113;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;;;;;;:::i;:::-;;11559:195;;11676:67;;-1:-1:-1;;;11676:67:113;;-1:-1:-1;;;;;15091:55:123;;;11676:67:113;;;15073:74:123;15163:18;;;15156:34;;;11676:39:113;;;;;15046:18:123;;11676:67:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11657:86;;11559:195;-1:-1:-1;;;;;11764:30:113;;;;;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;:60;;;11853:36;;;:27;:36;;;;;:47;;;;;;;;:54;;-1:-1:-1;;11853:54:113;11903:4;11853:54;;;;;;11918:27;;;:18;:27;;;;;:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11918:43:113;;;;;11977:61;;15955:34:123;;;16005:18;;15998:43;;;;16057:18;;;16050:34;;;11977:61:113;;15882:2:123;15867:18;11977:61:113;;;;;;;10943:1102;;;10866:1179;;:::o;17581:120::-;17641:17;:15;:17::i;:::-;17668:26;17684:9;17668:15;:26::i;:::-;17581:120;:::o;16639:::-;16699:17;:15;:17::i;:::-;16726:26;16739:12;16726;:26::i;12051:691::-;12140:34;12166:7;12140:25;:34::i;:::-;12184:29;12203:9;12184:18;:29::i;:::-;12223:42;12243:10;12255:9;12223:19;:42::i;:::-;-1:-1:-1;;;;;12281:36:113;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;12276:110;;12351:24;;;;;;;;;;;;;;12276:110;-1:-1:-1;;;;;12396:36:113;;;12446:5;12396:36;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;:55;;-1:-1:-1;;12396:55:113;;;12461:30;;;:21;:30;;;;;:41;;;;;;;;;:45;12516:44;12424:7;12433:9;12516:24;:44::i;:::-;12690:45;;;-1:-1:-1;;;;;16348:15:123;;;16330:34;;16400:15;;16395:2;16380:18;;16373:43;12690:45:113;;16242:18:123;12690:45:113;;;;;;;12051:691;;:::o;20416:467::-;20539:15;;20471:7;;-1:-1:-1;;;;;20539:15:113;20471:7;20634:21;7684:7;20634:3;:21;:::i;:::-;20617:12;;20595:19;;:34;;;;:::i;:::-;20594:62;;;;:::i;:::-;20565:91;-1:-1:-1;20666:24:113;20777:21;7684:7;20777:3;:21;:::i;:::-;20728:44;;-1:-1:-1;;;20728:44:113;;20766:4;20728:44;;;2686:74:123;-1:-1:-1;;;;;20728:29:113;;;;;2659:18:123;;20728:44:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20706:19;;:66;;;;:::i;:::-;20705:94;;;;:::i;:::-;20666:133;;20860:16;20839:18;20817:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;20810:66;;;;;20416:467;:::o;7409:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7409:82:113;;-1:-1:-1;7409:82:113;;-1:-1:-1;7409:82:113:o;4929:145:25:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5042:25:::1;5053:4;5059:7;5042:10;:25::i;:::-;4929:145:::0;;;:::o;21002:182:113:-;21071:17;:15;:17::i;:::-;21098:19;:32;;;21145;;689:25:123;;;21145:32:113;;677:2:123;662:18;21145:32:113;543:177:123;18503:1907:113;2261:21:28;:19;:21::i;:::-;18585:10:113::1;18567:15;18632:28:::0;;;:19:::1;:28;::::0;;;;18719:15:::1;::::0;18632:28;;-1:-1:-1;;;;;18719:15:113;;::::1;::::0;18814:21:::1;7684:7;18814:3;:21;:::i;:::-;18797:12;;18775:19;;:34;;;;:::i;:::-;18774:62;;;;:::i;:::-;18745:91:::0;-1:-1:-1;18846:24:113::1;18957:21;7684:7;18957:3;:21;:::i;:::-;18908:44;::::0;-1:-1:-1;;;18908:44:113;;18946:4:::1;18908:44;::::0;::::1;2686:74:123::0;-1:-1:-1;;;;;18908:29:113;::::1;::::0;::::1;::::0;2659:18:123;;18908:44:113::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18886:19;;:66;;;;:::i;:::-;18885:94;;;;:::i;:::-;-1:-1:-1::0;;;;;18423:28:113;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18846:133;;-1:-1:-1;18989:1415:113::1;;19027:22;::::0;::::1;:29:::0;;-1:-1:-1;;19027:29:113::1;19052:4;19027:29:::0;;::::1;::::0;;;19096:19:::1;::::0;19071:22;;::::1;:44:::0;19201:48:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19236:11:::1;::::0;19201:48:::1;::::0;;-1:-1:-1;;;;;19236:11:113::1;19201;:48::i;:::-;19264:143;19310:7;19327:4;19377:16;19356:18;19334:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;19264:11;::::0;-1:-1:-1;;;;;19264:11:113::1;::::0;:143;;:28:::1;:143::i;:::-;19758:53;;;;;;;;;;;;;;;;;::::0;19792:18:::1;19758:11;:53::i;:::-;19829:22:::0;;19825:175:::1;;19871:39;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19898:11:::1;::::0;19871:39:::1;::::0;;-1:-1:-1;;;;;19898:11:113::1;19871;:39::i;:::-;19953:11;::::0;19928::::1;::::0;:57:::1;::::0;-1:-1:-1;;;;;19928:11:113;;::::1;::::0;19953::::1;19966:18:::0;19928:24:::1;:57::i;:::-;20013:49;;;;;;;;;;;;;;;;;::::0;20045:16:::1;20013:11;:49::i;:::-;20080:20:::0;;20076:252:::1;;20120:93;;;;;;;;;;;;;;;;;;20174:14;-1:-1:-1::0;;;;;20174:36:113::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20120:11;:93::i;:::-;20231:82;20256:14;-1:-1:-1::0;;;;;20256:36:113::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20231:11;::::0;-1:-1:-1;;;;;20231:11:113::1;::::0;20296:16;20231:24:::1;:82::i;:::-;20373:19;::::0;20347:46:::1;::::0;;-1:-1:-1;;;;;15091:55:123;;15073:74;;15178:2;15163:18;;15156:34;;;;20347:46:113::1;::::0;15046:18:123;20347:46:113::1;;;;;;;18989:1415;18557:1853;;;;;2303:20:28::0;1716:1;2809:7;:22;2629:209;2303:20;18503:1907:113:o;6038:214:25:-;-1:-1:-1;;;;;6133:23:25;;719:10:35;6133:23:25;6125:83;;;;-1:-1:-1;;;6125:83:25;;17294:2:123;6125:83:25;;;17276:21:123;17333:2;17313:18;;;17306:30;17372:34;17352:18;;;17345:62;17443:17;17423:18;;;17416:45;17478:19;;6125:83:25;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;17707:240:113:-;17771:17;:15;:17::i;:::-;17798:25;17817:5;17798:18;:25::i;:::-;17833:18;:26;;-1:-1:-1;;;;;;17833:26:113;-1:-1:-1;;;;;17833:26:113;;;;;;;;;17907:11;;17874:66;;;17907:11;;;;16330:34:123;;16395:2;16380:18;;16373:43;;;;17874:66:113;;16242:18:123;17874:66:113;16095:327:123;13179:998:113;2261:21:28;:19;:21::i;:::-;13255:26:113::1;:24;:26::i;:::-;13308:10;13291:14;13364:26:::0;;;:18:::1;:26;::::0;;;;;;;13328:62;;;;;;::::1;::::0;;;;;;;;;;;;13364:26;;13328:62;;::::1;13364:26:::0;13328:62;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;13328:62:113::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;13401:24;13441:9:::0;13453:1:::1;13441:13;;13436:533;13460:16;:23;13456:1;:27;13436:533;;;13643:16;13660:1;13643:19;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;13628:72:::1;::::0;-1:-1:-1;;;13628:72:113;;-1:-1:-1;;;;;15091:55:123;;;13628:72:113::1;::::0;::::1;15073:74:123::0;15163:18;;;15156:34;;;13628:49:113;;::::1;::::0;::::1;::::0;15046:18:123;;13628:72:113::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13609:91:::0;-1:-1:-1;13718:21:113;;13714:229:::1;;-1:-1:-1::0;;;;;13759:29:113;::::1;;::::0;;;:21:::1;:29;::::0;;;;13789:19;;13813:16;;13759:29;13789:16;;13806:1;;13789:19;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13759:50:113::1;-1:-1:-1::0;;;;;13759:50:113::1;;;;;;;;;;;;;:70;;;;;;;:::i;:::-;;;;;;;;13847:81;;;;;;;;;;;;;;;;;::::0;13877:21:::1;:29;13899:6;-1:-1:-1::0;;;;;13877:29:113::1;-1:-1:-1::0;;;;;13877:29:113::1;;;;;;;;;;;;:50;13907:16;13924:1;13907:19;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13877:50:113::1;-1:-1:-1::0;;;;;13877:50:113::1;;;;;;;;;;;;;13847:11;:81::i;:::-;13485:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13436:533;;;-1:-1:-1::0;13979:11:113::1;::::0;:66:::1;::::0;-1:-1:-1;;;;;13979:11:113::1;14008:6:::0;14024:4:::1;14031:13:::0;13979:28:::1;:66::i;:::-;-1:-1:-1::0;;;;;14055:27:113;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:57:::0;;14099:13;;14055:27;:57:::1;::::0;14099:13;;14055:57:::1;:::i;:::-;::::0;;;-1:-1:-1;;14127:43:113::1;::::0;;-1:-1:-1;;;;;15091:55:123;;15073:74;;15178:2;15163:18;;15156:34;;;14127:43:113::1;::::0;15046:18:123;14127:43:113::1;;;;;;;;13245:932;;;2303:20:28::0;1716:1;2809:7;:22;2629:209;14317:1554:113;2261:21:28;:19;:21::i;:::-;14395:26:113::1;:24;:26::i;:::-;14448:10;14431:14;14505:26:::0;;;:18:::1;:26;::::0;;;;;;;14642:19:::1;::::0;14581::::1;:27:::0;;;;;;:40:::1;;::::0;14505:26;;14431:14;14642:19;14581:58:::1;::::0;14624:15;;14581:58:::1;:::i;:::-;:80;14577:140;;;14684:22;;;;;;;;;;;;;;14577:140;14726:11;::::0;:49:::1;::::0;-1:-1:-1;;;;;14726:11:113::1;14751:6:::0;14759:15;14726:24:::1;:49::i;:::-;14790:9;14785:951;14809:23:::0;;14805:27;::::1;14785:951;;;14853:16;14872;14889:1;14872:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14872:19:113::1;::::0;-1:-1:-1;14909:60:113::1;14872:19:::0;-1:-1:-1;;;14909:26:113::1;:60::i;:::-;14905:804;;;15008:63;::::0;;;;-1:-1:-1;;;;;15091:55:123;;;15008:63:113::1;::::0;::::1;15073:74:123::0;15163:18;;;15156:34;;;15008:38:113;::::1;::::0;::::1;::::0;15046:18:123;;15008:63:113::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14989:82;;15089:20;15112:21;:29;15134:6;-1:-1:-1::0;;;;;15112:29:113::1;-1:-1:-1::0;;;;;15112:29:113::1;;;;;;;;;;;;:50;15142:16;15159:1;15142:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15142:19:113::1;15112:50:::0;;;::::1;::::0;;;;;;;;;;-1:-1:-1;15184:31:113;;::::1;15180:259;;;15246:57;::::0;::::1;::::0;;::::1;::::0;::::1;18484:25:123::0;;;18525:18;;;18518:34;;;18457:18;;15246:57:113::1;18310:248:123::0;15180:259:113::1;-1:-1:-1::0;;;;;15350:29:113;::::1;;::::0;;;:21:::1;:29;::::0;;;;15380:19;;15404:16;;15350:29;15380:16;;15397:1;;15380:19;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15380:19:113::1;15350:50:::0;;;::::1;::::0;;;;;;;;:70;;:50;;15380:19;15350:70:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;14971:482:113::1;14905:804;;;15583:23:::0;;15566:16;;15583:27:::1;::::0;15609:1:::1;::::0;15583:27:::1;:::i;:::-;15566:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;15566:45:113::1;15544:16;15561:1;15544:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1::0;;;;;15544:67:113::1;;;;;-1:-1:-1::0;;;;;15544:67:113::1;;;;;;15629:16;:22;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15629:22:113;;;;;-1:-1:-1;;;;;;15629:22:113::1;::::0;;;;;15669:25:::1;15685:8:::0;15669:15:::1;:25::i;:::-;-1:-1:-1::0;14834:3:113;::::1;::::0;::::1;:::i;:::-;;;;14785:951;;;-1:-1:-1::0;;;;;;15745:27:113;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:59:::0;;15789:15;;15745:27;:59:::1;::::0;15789:15;;15745:59:::1;:::i;:::-;::::0;;;-1:-1:-1;;15819:45:113::1;::::0;;-1:-1:-1;;;;;15091:55:123;;15073:74;;15178:2;15163:18;;15156:34;;;15819:45:113::1;::::0;15046:18:123;15819:45:113::1;14891:305:123::0;22581:571:113;2261:21:28;:19;:21::i;:::-;22674:17:113::1;:15;:17::i;:::-;22706:13;::::0;::::1;;22701:68;;22742:16;;;;;;;;;;;;;;22701:68;-1:-1:-1::0;;;;;18423:28:113;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22778:75:::1;;22823:19;;-1:-1:-1::0;;;22823:19:113::1;;;;;;;;;;;22778:75;-1:-1:-1::0;;;;;22885:28:113;;::::1;22862:20;22885:28:::0;;;:19:::1;:28;::::0;;;;;;;;22862:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;::::1;;;;::::0;;;;22923:32:::1;22905:7:::0;22923:23:::1;:32::i;:::-;-1:-1:-1::0;;;;;22972:28:113;;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;22965:35;;-1:-1:-1;;;;;;22965:35:113::1;::::0;;-1:-1:-1;22965:35:113;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;22965:35:113::1;::::0;;23011:11:::1;::::0;23050:19;;::::1;::::0;23011:59;;-1:-1:-1;;;23011:59:113;;15091:55:123;;;23011:59:113::1;::::0;::::1;15073:74:123::0;15163:18;;;15156:34;;;;23011:11:113;;::::1;::::0;:20:::1;::::0;15046:18:123;;23011:59:113::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23125:19:113::1;::::0;;::::1;::::0;23085:60:::1;::::0;;-1:-1:-1;;;;;15973:15:123;;;15955:34;;16025:15;;16005:18;;;15998:43;;;;16057:18;;16050:34;23085:60:113::1;::::0;15882:2:123;15867:18;23085:60:113::1;;;;;;;22664:488;2303:20:28::0;1716:1;2809:7;:22;2629:209;17154:229:113;17219:17;:15;:17::i;:::-;17273:4;;:20;;-1:-1:-1;;;17273:20:113;;;;;689:25:123;;;17246:16:113;;-1:-1:-1;;;;;17273:4:113;;:12;;662:18:123;;17273:20:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17273:20:113;;;;;;;;;;;;:::i;:::-;:29;;;17246:57;;17313:28;17332:8;17313:18;:28::i;:::-;17351:25;17367:8;17351:15;:25::i;16320:313::-;16382:17;:15;:17::i;:::-;16436:4;;:20;;-1:-1:-1;;;16436:20:113;;;;;689:25:123;;;16409:16:113;;-1:-1:-1;;;;;16436:4:113;;:12;;662:18:123;;16436:20:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16436:20:113;;;;;;;;;;;;:::i;:::-;:29;;;16409:57;;16476:28;16495:8;16476:18;:28::i;:::-;16518:60;-1:-1:-1;;;;;16518:26:113;;-1:-1:-1;;;16518:26:113;:60::i;:::-;16514:113;;;16594:22;16607:8;16594:12;:22::i;7909:1945::-;7996:48;8023:6;:19;;;7996:18;:48::i;:::-;8054:39;8073:6;:19;;;8054:18;:39::i;:::-;8122:12;;8103:32;;:18;:32::i;:::-;8145:43;8164:6;:23;;;8145:18;:43::i;:::-;8198:44;8217:6;:24;;;8198:18;:44::i;:::-;8257:20;;;;:25;8253:95;;8298:39;8317:6;:19;;;8298:18;:39::i;:::-;8370:12;;8357:4;:26;;-1:-1:-1;;;;;8357:26:113;;;-1:-1:-1;;;;;;8357:26:113;;;;;;;8407:19;;;;8393:11;:33;;;;;;;;;;;8440:27;;;;8370:12;8440:32;8436:89;;8495:19;;;;;;;;;;;;;;8436:89;8556:27;;;;8534:19;:49;8608:20;;;;8593:12;:35;8654:21;;;;8638:13;:37;;-1:-1:-1;;8638:37:113;;;;;;;;;;8701:21;;;;8685:13;;:37;;:13;:37;:::i;:::-;-1:-1:-1;8751:23:113;;;;8732:16;;:42;;:16;:42;:::i;:::-;-1:-1:-1;8802:23:113;;;;8784:15;:41;;-1:-1:-1;;;;;;8784:41:113;;;-1:-1:-1;;;;;8784:41:113;;;;;;;8849:19;;;;8835:11;:33;;;;;;;;;;;;;8784:41;8898:19;;;8878:11;:40;;;;;;;;;;8947:24;;;;8928:16;:43;;;;;;;;;;;;;8982:54;;2090:34;;8982:10;:54::i;:::-;9068:4;;;;;;;;;-1:-1:-1;;;;;9068:4:113;-1:-1:-1;;;;;9068:16:113;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9047:8;:40;;-1:-1:-1;;;;;;9047:40:113;-1:-1:-1;;;;;9047:40:113;;;;;;9124:11;;:23;;;;;;;;-1:-1:-1;;9124:11:113;;;;;:21;;:23;;;;;-1:-1:-1;;9124:23:113;;;;;;;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9124:23:113;;;;;;;;;;;;:::i;:::-;9098:49;;9157:36;9210:6;:13;9226:1;9210:17;;;;:::i;:::-;9196:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9196:32:113;;9157:71;;9244:9;9239:103;9263:6;:13;9259:1;:17;9239:103;;;9322:6;9329:1;9322:9;;;;;;;;:::i;:::-;;;;;;;9297:19;9317:1;9297:22;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9297:34:113;;;:22;;;;;;;;;;;:34;9278:3;;;;:::i;:::-;;;;9239:103;;;-1:-1:-1;9414:11:113;;9372:26;;-1:-1:-1;;;;;9414:11:113;;;;9352:19;;9372:30;;9414:11;;9372:30;:::i;:::-;9352:51;;;;;;;;:::i;:::-;;;;;;:74;-1:-1:-1;;;;;9352:74:113;;;-1:-1:-1;;;;;9352:74:113;;;;;9498:4;9436:19;9485:1;9456:19;:26;:30;;;;:::i;:::-;9436:51;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9436:67:113;;;:51;;;;;;;;;:67;9615:8;;9638:13;;;;9668:16;;;;9615:106;;;;;:8;;;;;:22;;:106;;9638:13;9653;;9694:4;;9701:19;;9615:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9591:9;:130;9732:36;;;;:14;;:36;;;;;:::i;:::-;;9784:63;9804:9;;9815:13;9830:6;:16;;;9784:63;;;;;;;;:::i;:::-;;;;;;;;7986:1868;;7909:1945;:::o;9860:341::-;10093:16;;10111:10;:12;;10003:14;;;;;;10075:49;;-1:-1:-1;;;;;10093:16:113;;10003:14;10111:12;;;:::i;:::-;;;;;10075:17;:49::i;:::-;10051:73;;10141:53;10152:13;10167:6;10175:7;10184:9;10141:10;:53::i;:::-;10134:60;;;;;9860:341;;;;;;:::o;18138:171::-;18202:18;;-1:-1:-1;;;;;18202:18:113;18188:10;:32;18184:89;;18243:19;;;;;;;;;;;;;;18184:89;18282:20;:18;:20::i;7070:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21650:453::-;2261:21:28;:19;:21::i;:::-;21726:10:113::1;21746:34;21726:10:::0;21746:25:::1;:34::i;:::-;21790:32;21814:7;21790:23;:32::i;:::-;-1:-1:-1::0;;;;;21855:28:113;;::::1;21832:20;21855:28:::0;;;:19:::1;:28;::::0;;;;;;;21832:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;;::::0;;;;21900:28;;;-1:-1:-1;;;;;;21893:35:113;;::::1;::::0;;;;;;;-1:-1:-1;;21893:35:113;;::::1;::::0;;;21945:18:::1;:27:::0;;;;;21832:51;;21938:34:::1;::::0;21945:27;21938:34:::1;:::i;:::-;21983:11;::::0;22013:19:::1;::::0;::::1;::::0;21983:50:::1;::::0;-1:-1:-1;;;21983:50:113;;-1:-1:-1;;;;;15091:55:123;;;21983:50:113::1;::::0;::::1;15073:74:123::0;15163:18;;;15156:34;;;;21983:11:113;::::1;::::0;:20:::1;::::0;15046:18:123;;21983:50:113::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22076:19:113::1;::::0;;::::1;::::0;22048:48:::1;::::0;;-1:-1:-1;;;;;15091:55:123;;15073:74;;15163:18;;;15156:34;;;;22048:48:113::1;::::0;15046:18:123;22048:48:113::1;;;;;;;21698:405;;2303:20:28::0;1716:1;2809:7;:22;2629:209;7697:54:113;7731:20;7684:7;7731:2;:20;:::i;:::-;7697:54;:::o;7037:27::-;;;;;;;:::i;10207:653::-;10391:14;;1829:42;-1:-1:-1;;;;;10471:20:113;;;10467:65;;-1:-1:-1;10515:6:113;10467:65;10552:9;10541:20;;10572:31;10606:14;10572:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10572:48:113;;;;;;;;;;;;;;;;-1:-1:-1;;10640:4:113;;10687:9;;10708:19;;10572:48;;-1:-1:-1;;;;;;10640:4:113;;;;:33;;-1:-1:-1;10687:9:113;;-1:-1:-1;10698:8:113;;-1:-1:-1;10708:19:113;;10719:7;;10708:19;;;:::i;:::-;;;;;;;;;;;;;10729:5;10736:1;10739:9;10750:14;10640:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10631:143;;10790:63;10802:6;10810:8;10828:4;10835:6;10843:9;10790:63;;;;;;;;;;:::i;:::-;;;;;;;;10425:435;;10207:653;;;;;;;:::o;5354:147:25:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5468:26:::1;5480:4;5486:7;5468:11;:26::i;21512:132:113:-:0;-1:-1:-1;;;;;3130:29:25;;21575:4:113;3130:29:25;;;:12;;:29;:12;:29;;;;;21598:39:113;3021:145:25;3564:155:113;3650:10;3107:4:25;3130:29;;;:12;;:29;:12;:29;;;;;3614:99:113;;3684:18;;;;;;;;;;;;;;3874:156;-1:-1:-1;;;;;18423:28:113;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:75;;3994:19;;-1:-1:-1;;;3994:19:113;;;;;;;;;;;4036:162;-1:-1:-1;;;;;4112:28:113;;;;;;:17;:28;;;;;;;;4107:85;;4163:18;;;;;;;;;;;;;;17015:133;-1:-1:-1;;;;;17089:22:113;;17085:56;;17120:21;;;;;;;;;;;;;;17389:186;17452:29;17471:9;17452:18;:29::i;:::-;-1:-1:-1;;;;;17491:28:113;;17522:5;17491:28;;;:17;:28;;;;;;;;;:36;;-1:-1:-1;;17491:36:113;;;17542:26;;2686:74:123;;;17542:26:113;;2659:18:123;17542:26:113;2540:226:123;16765:244:113;-1:-1:-1;;;;;16832:31:113;;;;;;:17;:31;;;;;;;;16828:85;;;16886:16;;;;;;;;;;;;;;16828:85;-1:-1:-1;;;;;16922:31:113;;;;;;:17;:31;;;;;;;;;:38;;-1:-1:-1;;16922:38:113;16956:4;16922:38;;;16975:27;;2686:74:123;;;16975:27:113;;2659:18:123;16975:27:113;2540:226:123;4204:171:113;4307:9;-1:-1:-1;;;;;4296:20:113;:7;-1:-1:-1;;;;;4296:20:113;;4292:77;;4339:19;;;;;;;;;;;;;;12748:425;-1:-1:-1;;;;;12874:27:113;;12837:34;12874:27;;;:18;:27;;;;;;12911:256;12935:23;;12931:27;;12911:256;;;13006:9;-1:-1:-1;;;;;12983:32:113;:16;13000:1;12983:19;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12983:19:113;:32;12979:178;;13074:23;;13057:16;;13074:27;;13100:1;;13074:27;:::i;:::-;13057:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13057:45:113;13035:16;13052:1;13035:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1;;;;;13035:67:113;;;;;-1:-1:-1;;;;;13035:67:113;;;;;;13120:16;:22;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13120:22:113;;;;;-1:-1:-1;;;;;;13120:22:113;;;;;;12979:178;12960:3;;;;:::i;:::-;;;;12911:256;;;;12827:346;12748:425;;:::o;3460:103:25:-;3526:30;3537:4;719:10:35;3526::25;:30::i;7587:233::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:25;;;;;;;;;;;;7665:149;;7708:12;;;;7740:4;7708:12;;;;;;;;-1:-1:-1;;;;;7708:29:25;;;;;;;;;;:36;;-1:-1:-1;;7708:36:25;;;;;;;7763:40;;719:10:35;;7708:12:25;;7763:40;;7708:12;7763:40;7587:233;;:::o;2336:287:28:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:28;;30814:2:123;2460:63:28;;;30796:21:123;30853:2;30833:18;;;30826:30;30892:33;30872:18;;;30865:61;30943:18;;2460:63:28;30612:355:123;2460:63:28;1759:1;2598:7;:18;2336:287::o;6994:145:66:-;7061:71;7124:2;7128;7077:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7077:54:66;;;;;;;;;;;;;;-1:-1:-1;;;;;7077:54:66;;;;;7061:15;:71::i;1355:203:33:-;1482:68;;-1:-1:-1;;;;;15973:15:123;;;1482:68:33;;;15955:34:123;16025:15;;16005:18;;;15998:43;16057:18;;;16050:34;;;1455:96:33;;1475:5;;1505:27;;15867:18:123;;1482:68:33;;;;-1:-1:-1;;1482:68:33;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:33;-1:-1:-1;;;;;;1482:68:33;;;;;;;;;;1455:19;:96::i;6548:139:66:-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:66;;;;;;;;;;;;;;-1:-1:-1;;;;;6628:51:66;;;;;6612:15;:68::i;941:175:33:-;1050:58;;-1:-1:-1;;;;;15091:55:123;;1050:58:33;;;15073:74:123;15163:18;;;15156:34;;;1023:86:33;;1043:5;;-1:-1:-1;;;1073:23:33;15046:18:123;;1050:58:33;14891:305:123;7991:234:25;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:25;;;;;;;;;;;;8070:149;;;8144:5;8112:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8112:29:25;;;;;;;;;;:37;;-1:-1:-1;;8112:37:25;;;8168:40;719:10:35;;8112:12:25;;8168:40;;8144:5;8168:40;7991:234;;:::o;3725:143:113:-;3798:10;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;-1:-1:-1;;;;;18397:54:113;;;;;;;;;;;;;;;;;;;;;;;;;;3784:78;;3832:19;;-1:-1:-1;;;3832:19:113;;;;;;;;;;;1349:282:38;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:38:o;22109:466:113:-;-1:-1:-1;;;;;22214:27:113;;22178:33;22214:27;;;:18;:27;;;;;;;;22178:63;;;;;;;;;;;;;;;;;;;22214:27;;22178:63;;;22214:27;22178:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22178:63:113;;;;;;;;;;;;;;;;;;;;;;;22322:9;22317:252;22341:16;:23;22337:1;:27;22317:252;;;22512:16;22529:1;22512:19;;;;;;;;:::i;:::-;;;;;;;;;;;22497:61;;;;;-1:-1:-1;;;;;2704:55:123;;;22497:61:113;;;2686:74:123;22497:52:113;;;;;;2659:18:123;;22497:61:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22366:3;;;;;:::i;:::-;;;;22317:252;;4749:279:6;4867:36;;-1:-1:-1;;4884:10:6;31790:2:123;31786:15;31782:53;4867:36:6;;;31770:66:123;31852:12;;;31845:28;;;4823:7:6;;;;31889:12:123;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;17953:179:113:-;18022:18;;;18002:11;:39;;-1:-1:-1;;;;;18022:18:113;;-1:-1:-1;;;;;;18002:39:113;;;;;;;18051:25;;;18091:34;;-1:-1:-1;2686:74:123;;18091:34:113;;2674:2:123;2659:18;18091:34:113;;;;;;;17953:179::o;3844:479:25:-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:25;;;;;;;;;;;;3927:390;;4115:28;4135:7;4115:19;:28::i;:::-;4214:38;4242:4;4249:2;4214:19;:38::i;:::-;4022:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4022:252:25;;;;;;;;;;-1:-1:-1;;;3970:336:25;;;;;;;:::i;181:376:66:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;5196:642:33:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:33;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:33;;33170:2:123;5720:111:33;;;33152:21:123;33209:2;33189:18;;;33182:30;33248:34;33228:18;;;33221:62;33319:12;33299:18;;;33292:40;33349:19;;5720:111:33;32968:406:123;704:427:38;768:4;975:68;1008:7;-1:-1:-1;;;975:32:38;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:38;1093:7;-1:-1:-1;;;;;;1060:32:38;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:38:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;33541:79:123;;4592:71:38;;;;33523:98:123;;;;4592:71:38;;;;;;;;;;33496:18:123;;;;4592:71:38;;;;;;;;;-1:-1:-1;;;;;4592:71:38;-1:-1:-1;;;4592:71:38;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:38:o;2118:794:14:-;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:14;;2847:58;;;;-1:-1:-1;;;2847:58:14;;33834:2:123;2847:58:14;;;33816:21:123;33873:2;33853:18;;;33846:30;33912:25;33892:18;;;33885:53;33955:18;;2847:58:14;33632:347:123;2407:149:36;2465:13;2497:52;-1:-1:-1;;;;;2509:22:36;;343:2;1818:437;1893:13;1918:19;1950:10;1954:6;1950:1;:10;:::i;:::-;:14;;1963:1;1950:14;:::i;:::-;1940:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:25:36;;1918:47;;1975:15;:6;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1975:15:36;;;;;;;;;2000;:6;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2000:15:36;;;;;;;;-1:-1:-1;2030:9:36;2042:10;2046:6;2042:1;:10;:::i;:::-;:14;;2055:1;2042:14;:::i;:::-;2030:26;;2025:128;2062:1;2058;:5;2025:128;;;2096:8;2105:5;2113:3;2105:11;2096:21;;;;;;;:::i;:::-;;;;2084:6;2091:1;2084:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2084:33:36;;;;;;;;-1:-1:-1;2141:1:36;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:36;;2162:55;;;;-1:-1:-1;;;2162:55:36;;34327:2:123;2162:55:36;;;34309:21:123;;;34346:18;;;34339:30;34405:34;34385:18;;;34378:62;34457:18;;2162:55:36;34125:356:123;4108:223:34;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:34;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;7851;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:34;;;8113:60;;;;-1:-1:-1;;;8113:60:34;;35387:2:123;8113:60:34;;;35369:21:123;35426:2;35406:18;;;35399:30;35465:31;35445:18;;;35438:59;35514:18;;8113:60:34;35185:353:123;8113:60:34;-1:-1:-1;8208:10:34;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:34;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:332:123;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;-1:-1:-1;;;;;;223:5:123;219:78;212:5;209:89;199:117;;312:1;309;302:12;907:180;966:6;1019:2;1007:9;998:7;994:23;990:32;987:52;;;1035:1;1032;1025:12;987:52;-1:-1:-1;1058:23:123;;907:180;-1:-1:-1;907:180:123:o;1092:154::-;-1:-1:-1;;;;;1171:5:123;1167:54;1160:5;1157:65;1147:93;;1236:1;1233;1226:12;1251:134;1319:20;;1348:31;1319:20;1348:31;:::i;:::-;1251:134;;;:::o;1390:388::-;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1574:9;1561:23;1593:31;1618:5;1593:31;:::i;:::-;1643:5;-1:-1:-1;1700:2:123;1685:18;;1672:32;1713:33;1672:32;1713:33;:::i;:::-;1765:7;1755:17;;;1390:388;;;;;:::o;1783:247::-;1842:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:52;;;1911:1;1908;1901:12;1863:52;1950:9;1937:23;1969:31;1994:5;1969:31;:::i;2220:315::-;2288:6;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2404:9;2391:23;2423:31;2448:5;2423:31;:::i;:::-;2473:5;2525:2;2510:18;;;;2497:32;;-1:-1:-1;;;2220:315:123:o;2771:::-;2839:6;2847;2900:2;2888:9;2879:7;2875:23;2871:32;2868:52;;;2916:1;2913;2906:12;2868:52;2952:9;2939:23;2929:33;;3012:2;3001:9;2997:18;2984:32;3025:31;3050:5;3025:31;:::i;4476:184::-;-1:-1:-1;;;4525:1:123;4518:88;4625:4;4622:1;4615:15;4649:4;4646:1;4639:15;4665:257;4737:4;4731:11;;;4769:17;;4816:18;4801:34;;4837:22;;;4798:62;4795:88;;;4863:18;;:::i;:::-;4899:4;4892:24;4665:257;:::o;4927:255::-;4999:2;4993:9;5041:6;5029:19;;5078:18;5063:34;;5099:22;;;5060:62;5057:88;;;5125:18;;:::i;5187:255::-;5259:2;5253:9;5301:6;5289:19;;5338:18;5323:34;;5359:22;;;5320:62;5317:88;;;5385:18;;:::i;5447:253::-;5519:2;5513:9;5561:4;5549:17;;5596:18;5581:34;;5617:22;;;5578:62;5575:88;;;5643:18;;:::i;5705:275::-;5776:2;5770:9;5841:2;5822:13;;-1:-1:-1;;5818:27:123;5806:40;;5876:18;5861:34;;5897:22;;;5858:62;5855:88;;;5923:18;;:::i;:::-;5959:2;5952:22;5705:275;;-1:-1:-1;5705:275:123:o;5985:187::-;6034:4;6067:18;6059:6;6056:30;6053:56;;;6089:18;;:::i;:::-;-1:-1:-1;6155:2:123;6134:15;-1:-1:-1;;6130:29:123;6161:4;6126:40;;5985:187::o;6177:464::-;6220:5;6273:3;6266:4;6258:6;6254:17;6250:27;6240:55;;6291:1;6288;6281:12;6240:55;6327:6;6314:20;6358:49;6374:32;6403:2;6374:32;:::i;:::-;6358:49;:::i;:::-;6432:2;6423:7;6416:19;6478:3;6471:4;6466:2;6458:6;6454:15;6450:26;6447:35;6444:55;;;6495:1;6492;6485:12;6444:55;6560:2;6553:4;6545:6;6541:17;6534:4;6525:7;6521:18;6508:55;6608:1;6583:16;;;6601:4;6579:27;6572:38;;;;6587:7;6177:464;-1:-1:-1;;;6177:464:123:o;6646:411::-;6701:5;6749:4;6737:9;6732:3;6728:19;6724:30;6721:50;;;6767:1;6764;6757:12;6721:50;6789:22;;:::i;:::-;6780:31;;6847:9;6834:23;6827:5;6820:38;6909:2;6898:9;6894:18;6881:32;6936:18;6928:6;6925:30;6922:50;;;6968:1;6965;6958:12;6922:50;7004:46;7046:3;7037:6;7026:9;7022:22;7004:46;:::i;:::-;6999:2;6992:5;6988:14;6981:70;;6646:411;;;;:::o;7062:118::-;7148:5;7141:13;7134:21;7127:5;7124:32;7114:60;;7170:1;7167;7160:12;7185:128;7250:20;;7279:28;7250:20;7279:28;:::i;7318:1713::-;7412:6;7465:2;7453:9;7444:7;7440:23;7436:32;7433:52;;;7481:1;7478;7471:12;7433:52;7521:9;7508:23;7550:18;7591:2;7583:6;7580:14;7577:34;;;7607:1;7604;7597:12;7577:34;7630:22;;;;7686:6;7668:16;;;7664:29;7661:49;;;7706:1;7703;7696:12;7661:49;7732:22;;:::i;:::-;7777;7796:2;7777:22;:::i;:::-;7770:5;7763:37;7832:31;7859:2;7855;7851:11;7832:31;:::i;:::-;7827:2;7820:5;7816:14;7809:55;7917:2;7913;7909:11;7896:25;7891:2;7884:5;7880:14;7873:49;7975:2;7971;7967:11;7954:25;7949:2;7942:5;7938:14;7931:49;8034:3;8030:2;8026:12;8013:26;8007:3;8000:5;7996:15;7989:51;8073:32;8100:3;8096:2;8092:12;8073:32;:::i;:::-;8067:3;8060:5;8056:15;8049:57;8139:32;8166:3;8162:2;8158:12;8139:32;:::i;:::-;8133:3;8126:5;8122:15;8115:57;8218:3;8214:2;8210:12;8197:26;8248:2;8238:8;8235:16;8232:36;;;8264:1;8261;8254:12;8232:36;8301:54;8347:7;8336:8;8332:2;8328:17;8301:54;:::i;:::-;8295:3;8288:5;8284:15;8277:79;;8375:3;8410:31;8437:2;8433;8429:11;8410:31;:::i;:::-;8394:14;;;8387:55;8461:3;8502:11;;;8489:25;8526:16;;;8523:36;;;8555:1;8552;8545:12;8523:36;8591:45;8628:7;8617:8;8613:2;8609:17;8591:45;:::i;:::-;8586:2;8579:5;8575:14;8568:69;;;8656:3;8691:28;8715:2;8711;8707:11;8691:28;:::i;:::-;8675:14;;;8668:52;8739:3;8780:11;;;8767:25;8804:16;;;8801:36;;;8833:1;8830;8823:12;8801:36;8869:45;8906:7;8895:8;8891:2;8887:17;8869:45;:::i;:::-;8864:2;8857:5;8853:14;8846:69;;;8934:3;8924:13;;8969:31;8996:2;8992;8988:11;8969:31;:::i;:::-;8953:14;;;8946:55;;;;8957:5;7318:1713;-1:-1:-1;;;;7318:1713:123:o;9036:153::-;9114:20;;9163:1;9153:12;;9143:40;;9179:1;9176;9169:12;9194:110;9278:1;9271:5;9268:12;9258:40;;9294:1;9291;9284:12;9309:152;9386:20;;9415:40;9386:20;9415:40;:::i;9466:416::-;9530:5;9578:4;9566:9;9561:3;9557:19;9553:30;9550:50;;;9596:1;9593;9586:12;9550:50;9629:2;9623:9;9671:4;9663:6;9659:17;9742:6;9730:10;9727:22;9706:18;9694:10;9691:34;9688:62;9685:88;;;9753:18;;:::i;:::-;9789:2;9782:22;9852:23;;9837:39;;-1:-1:-1;9822:6:123;9466:416;-1:-1:-1;9466:416:123:o;9887:359::-;9945:5;9993:4;9981:9;9976:3;9972:19;9968:30;9965:50;;;10011:1;10008;10001:12;9965:50;10033:22;;:::i;:::-;10024:31;;10092:9;10079:23;10111:33;10136:7;10111:33;:::i;:::-;10167:7;10160:5;10153:22;;10235:2;10224:9;10220:18;10207:32;10202:2;10195:5;10191:14;10184:56;9887:359;;;;:::o;10251:865::-;10314:5;10362:6;10350:9;10345:3;10341:19;10337:32;10334:52;;;10382:1;10379;10372:12;10334:52;10404:22;;:::i;:::-;10395:31;;10449:29;10468:9;10449:29;:::i;:::-;10442:5;10435:44;10539:2;10528:9;10524:18;10511:32;10506:2;10499:5;10495:14;10488:56;10604:2;10593:9;10589:18;10576:32;10571:2;10564:5;10560:14;10553:56;10669:2;10658:9;10654:18;10641:32;10636:2;10629:5;10625:14;10618:56;10735:3;10724:9;10720:19;10707:33;10701:3;10694:5;10690:15;10683:58;10774:49;10818:3;10807:9;10803:19;10774:49;:::i;:::-;10768:3;10761:5;10757:15;10750:74;10857:48;10900:3;10889:9;10885:19;10857:48;:::i;:::-;10851:3;10844:5;10840:15;10833:73;10939:61;10996:3;10990;10979:9;10975:19;10939:61;:::i;:::-;10933:3;10926:5;10922:15;10915:86;11020:3;11055:54;11105:3;11100:2;11089:9;11085:18;11055:54;:::i;:::-;11039:14;;;11032:78;11043:5;10251:865;-1:-1:-1;;10251:865:123:o;11121:618::-;11259:6;11267;11275;11328:3;11316:9;11307:7;11303:23;11299:33;11296:53;;;11345:1;11342;11335:12;11296:53;11384:9;11371:23;11403:31;11428:5;11403:31;:::i;:::-;11453:5;-1:-1:-1;11477:63:123;11532:7;11527:2;11512:18;;11477:63;:::i;:::-;11467:73;;11591:3;11580:9;11576:19;11563:33;11619:18;11611:6;11608:30;11605:50;;;11651:1;11648;11641:12;11605:50;11674:59;11725:7;11716:6;11705:9;11701:22;11674:59;:::i;:::-;11664:69;;;11121:618;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:123;12270:16;;12263:27;12046:250::o;12301:271::-;12343:3;12381:5;12375:12;12408:6;12403:3;12396:19;12424:76;12493:6;12486:4;12481:3;12477:14;12470:4;12463:5;12459:16;12424:76;:::i;:::-;12554:2;12533:15;-1:-1:-1;;12529:29:123;12520:39;;;;12561:4;12516:50;;12301:271;-1:-1:-1;;12301:271:123:o;12577:220::-;12726:2;12715:9;12708:21;12689:4;12746:45;12787:2;12776:9;12772:18;12764:6;12746:45;:::i;12802:759::-;12949:6;12957;12965;12973;13026:3;13014:9;13005:7;13001:23;12997:33;12994:53;;;13043:1;13040;13033:12;12994:53;13082:9;13069:23;13101:31;13126:5;13101:31;:::i;:::-;13151:5;-1:-1:-1;13208:2:123;13193:18;;13180:32;13221:33;13180:32;13221:33;:::i;:::-;13273:7;-1:-1:-1;13299:63:123;13354:7;13349:2;13334:18;;13299:63;:::i;:::-;13289:73;;13413:3;13402:9;13398:19;13385:33;13441:18;13433:6;13430:30;13427:50;;;13473:1;13470;13463:12;13427:50;13496:59;13547:7;13538:6;13527:9;13523:22;13496:59;:::i;:::-;13486:69;;;12802:759;;;;;;;:::o;14058:184::-;-1:-1:-1;;;14107:1:123;14100:88;14207:4;14204:1;14197:15;14231:4;14228:1;14221:15;14247:168;14320:9;;;14351;;14368:15;;;14362:22;;14348:37;14338:71;;14389:18;;:::i;14420:184::-;-1:-1:-1;;;14469:1:123;14462:88;14569:4;14566:1;14559:15;14593:4;14590:1;14583:15;14609:277;14696:6;14749:2;14737:9;14728:7;14724:23;14720:32;14717:52;;;14765:1;14762;14755:12;14717:52;14797:9;14791:16;14816:40;14850:5;14816:40;:::i;15201:184::-;15271:6;15324:2;15312:9;15303:7;15299:23;15295:32;15292:52;;;15340:1;15337;15330:12;15292:52;-1:-1:-1;15363:16:123;;15201:184;-1:-1:-1;15201:184:123:o;16427:274::-;16467:1;16493;16483:189;;-1:-1:-1;;;16525:1:123;16518:88;16629:4;16626:1;16619:15;16657:4;16654:1;16647:15;16483:189;-1:-1:-1;16686:9:123;;16427:274::o;16706:125::-;16771:9;;;16792:10;;;16789:36;;;16805:18;;:::i;16836:251::-;16906:6;16959:2;16947:9;16938:7;16934:23;16930:32;16927:52;;;16975:1;16972;16965:12;16927:52;17007:9;17001:16;17026:31;17051:5;17026:31;:::i;17848:184::-;-1:-1:-1;;;17897:1:123;17890:88;17997:4;17994:1;17987:15;18021:4;18018:1;18011:15;18037:135;18076:3;18097:17;;;18094:43;;18117:18;;:::i;:::-;-1:-1:-1;18164:1:123;18153:13;;18037:135::o;18177:128::-;18244:9;;;18265:11;;;18262:37;;;18279:18;;:::i;18563:184::-;-1:-1:-1;;;18612:1:123;18605:88;18712:4;18709:1;18702:15;18736:4;18733:1;18726:15;18752:245;18819:6;18872:2;18860:9;18851:7;18847:23;18843:32;18840:52;;;18888:1;18885;18878:12;18840:52;18920:9;18914:16;18939:28;18961:5;18939:28;:::i;19002:1653::-;19094:6;19125:2;19168;19156:9;19147:7;19143:23;19139:32;19136:52;;;19184:1;19181;19174:12;19136:52;19217:9;19211:16;19246:18;19287:2;19279:6;19276:14;19273:34;;;19303:1;19300;19293:12;19273:34;19326:22;;;;19382:4;19364:16;;;19360:27;19357:47;;;19400:1;19397;19390:12;19357:47;19426:22;;:::i;:::-;19477:2;19471:9;19464:5;19457:24;19519:2;19515;19511:11;19505:18;19532:33;19557:7;19532:33;:::i;:::-;19581:14;;;19574:31;19643:2;19635:11;;19629:18;19656:33;19629:18;19656:33;:::i;:::-;19716:2;19705:14;;19698:31;19768:2;19760:11;;19754:18;19784:16;;;19781:36;;;19813:1;19810;19803:12;19781:36;19836:17;;19887:2;19869:16;;;19865:25;19862:45;;;19903:1;19900;19893:12;19862:45;19931:22;;:::i;:::-;19984:2;19978:9;19969:7;19962:26;20027:2;20023;20019:11;20013:18;20056:2;20046:8;20043:16;20040:36;;;20072:1;20069;20062:12;20040:36;20095:17;;;-1:-1:-1;20143:4:123;20135:13;;20131:27;-1:-1:-1;20121:55:123;;20172:1;20169;20162:12;20121:55;20201:2;20195:9;20185:19;;20226:49;20242:32;20271:2;20242:32;:::i;20226:49::-;20298:2;20291:5;20284:17;20338:7;20333:2;20328;20324;20320:11;20316:20;20313:33;20310:53;;;20359:1;20356;20349:12;20310:53;20372:67;20436:2;20431;20424:5;20420:14;20415:2;20411;20407:11;20372:67;:::i;:::-;20455:16;;;20448:31;;;;-1:-1:-1;20506:2:123;20495:14;;20488:31;;;;-1:-1:-1;20566:3:123;20558:12;;;20552:19;20535:15;;;20528:44;20619:3;20611:12;;;20605:19;20588:15;;;20581:44;20499:5;19002:1653;-1:-1:-1;;;19002:1653:123:o;20660:437::-;20739:1;20735:12;;;;20782;;;20803:61;;20857:4;20849:6;20845:17;20835:27;;20803:61;20910:2;20902:6;20899:14;20879:18;20876:38;20873:218;;-1:-1:-1;;;20944:1:123;20937:88;21048:4;21045:1;21038:15;21076:4;21073:1;21066:15;20873:218;;20660:437;;;:::o;21228:545::-;21330:2;21325:3;21322:11;21319:448;;;21366:1;21391:5;21387:2;21380:17;21436:4;21432:2;21422:19;21506:2;21494:10;21490:19;21487:1;21483:27;21477:4;21473:38;21542:4;21530:10;21527:20;21524:47;;;-1:-1:-1;21565:4:123;21524:47;21620:2;21615:3;21611:12;21608:1;21604:20;21598:4;21594:31;21584:41;;21675:82;21693:2;21686:5;21683:13;21675:82;;;21738:17;;;21719:1;21708:13;21675:82;;;21679:3;;;21228:545;;;:::o;21949:1352::-;22075:3;22069:10;22102:18;22094:6;22091:30;22088:56;;;22124:18;;:::i;:::-;22153:97;22243:6;22203:38;22235:4;22229:11;22203:38;:::i;:::-;22197:4;22153:97;:::i;:::-;22305:4;;22369:2;22358:14;;22386:1;22381:663;;;;23088:1;23105:6;23102:89;;;-1:-1:-1;23157:19:123;;;23151:26;23102:89;-1:-1:-1;;21906:1:123;21902:11;;;21898:24;21894:29;21884:40;21930:1;21926:11;;;21881:57;23204:81;;22351:944;;22381:663;21175:1;21168:14;;;21212:4;21199:18;;-1:-1:-1;;22417:20:123;;;22535:236;22549:7;22546:1;22543:14;22535:236;;;22638:19;;;22632:26;22617:42;;22730:27;;;;22698:1;22686:14;;;;22565:19;;22535:236;;;22539:3;22799:6;22790:7;22787:19;22784:201;;;22860:19;;;22854:26;-1:-1:-1;;22943:1:123;22939:14;;;22955:3;22935:24;22931:37;22927:42;22912:58;22897:74;;22784:201;-1:-1:-1;;;;;23031:1:123;23015:14;;;23011:22;22998:36;;-1:-1:-1;21949:1352:123:o;23306:1011::-;23401:6;23432:2;23475;23463:9;23454:7;23450:23;23446:32;23443:52;;;23491:1;23488;23481:12;23443:52;23524:9;23518:16;23553:18;23594:2;23586:6;23583:14;23580:34;;;23610:1;23607;23600:12;23580:34;23648:6;23637:9;23633:22;23623:32;;23693:7;23686:4;23682:2;23678:13;23674:27;23664:55;;23715:1;23712;23705:12;23664:55;23744:2;23738:9;23766:2;23762;23759:10;23756:36;;;23772:18;;:::i;:::-;23818:2;23815:1;23811:10;23801:20;;23841:28;23865:2;23861;23857:11;23841:28;:::i;:::-;23903:15;;;23973:11;;;23969:20;;;23934:12;;;;24001:19;;;23998:39;;;24033:1;24030;24023:12;23998:39;24057:11;;;;24077:210;24093:6;24088:3;24085:15;24077:210;;;24166:3;24160:10;24147:23;;24183:31;24208:5;24183:31;:::i;:::-;24227:18;;;24110:12;;;;24265;;;;24077:210;;;24306:5;23306:1011;-1:-1:-1;;;;;;;;23306:1011:123:o;24322:772::-;24372:3;24413:5;24407:12;24442:36;24468:9;24442:36;:::i;:::-;24487:19;;;24525:4;24548:1;24565:18;;;24592:146;;;;24752:1;24747:341;;;;24558:530;;24592:146;-1:-1:-1;;24634:24:123;;24620:12;;;24613:46;24706:14;;24699:22;24696:1;24692:30;24683:40;;24679:49;;;-1:-1:-1;24592:146:123;;24747:341;24778:5;24775:1;24768:16;24825:2;24822:1;24812:16;24850:1;24864:174;24878:6;24875:1;24872:13;24864:174;;;24965:14;;24947:11;;;24943:20;;24936:44;25008:16;;;;24893:10;;24864:174;;;25062:11;;25058:20;;;-1:-1:-1;;24558:530:123;;;;;;24322:772;;;;:::o;25099:252::-;25186:5;25180:12;25175:3;25168:25;25150:3;25239:4;25232:5;25228:16;25222:23;25277:4;25270;25265:3;25261:14;25254:28;25298:47;25339:4;25334:3;25330:14;25316:12;25298:47;:::i;25356:484::-;25409:3;25447:5;25441:12;25474:6;25469:3;25462:19;25500:4;25529:2;25524:3;25520:12;25513:19;;25566:2;25559:5;25555:14;25587:1;25597:218;25611:6;25608:1;25605:13;25597:218;;;25676:13;;-1:-1:-1;;;;;25672:62:123;25660:75;;25755:12;;;;25790:15;;;;25633:1;25626:9;25597:218;;;-1:-1:-1;25831:3:123;;25356:484;-1:-1:-1;;;;;25356:484:123:o;25845:827::-;26205:6;26194:9;26187:25;26248:3;26243:2;26232:9;26228:18;26221:31;26168:4;26275:54;26324:3;26313:9;26309:19;26301:6;26275:54;:::i;:::-;26377:9;26369:6;26365:22;26360:2;26349:9;26345:18;26338:50;26411:42;26446:6;26438;26411:42;:::i;:::-;26397:56;;-1:-1:-1;;;;;26493:6:123;26489:55;26484:2;26473:9;26469:18;26462:83;26594:9;26586:6;26582:22;26576:3;26565:9;26561:19;26554:51;26622:44;26659:6;26651;26622:44;:::i;26866:500::-;27120:6;27109:9;27102:25;27163:2;27158;27147:9;27143:18;27136:30;27083:4;27189:53;27238:2;27227:9;27223:18;27215:6;27189:53;:::i;:::-;27290:9;27282:6;27278:22;27273:2;27262:9;27258:18;27251:50;27318:42;27353:6;27345;27318:42;:::i;:::-;27310:50;26866:500;-1:-1:-1;;;;;;26866:500:123:o;27371:142::-;27454:1;27447:5;27444:12;27434:46;;27460:18;;:::i;:::-;27489;;27371:142::o;27819:1140::-;27981:4;28023:3;28012:9;28008:19;28000:27;;-1:-1:-1;;;;;28064:6:123;28058:13;28054:62;28043:9;28036:81;28173:4;28165:6;28161:17;28155:24;28148:4;28137:9;28133:20;28126:54;28236:4;28228:6;28224:17;28218:24;28211:4;28200:9;28196:20;28189:54;28299:4;28291:6;28287:17;28281:24;28274:4;28263:9;28259:20;28252:54;28362:4;28354:6;28350:17;28344:24;28337:4;28326:9;28322:20;28315:54;28416:4;28408:6;28404:17;28398:24;28458:1;28444:12;28441:19;28431:53;;28464:18;;:::i;:::-;28522:12;28515:4;28504:9;28500:20;28493:42;;28584:4;28576:6;28572:17;28566:24;28599:65;28658:4;28647:9;28643:20;28627:14;28599:65;:::i;:::-;;28713:4;28705:6;28701:17;28695:24;28728:73;28795:4;28784:9;28780:20;28764:14;27593:12;27581:25;;27518:90;28728:73;-1:-1:-1;28820:6:123;28863:15;;;28857:22;27694:12;;-1:-1:-1;;;;;27690:61:123;28934:18;;;27678:74;27801:4;27790:16;;27784:23;27768:14;;;27761:47;28888:65;;27819:1140;;;;:::o;28964:1002::-;29389:6;29378:9;29371:25;29352:4;-1:-1:-1;;;;;29505:2:123;29497:6;29493:15;29488:2;29477:9;29473:18;29466:43;29545:3;29540:2;29529:9;29525:18;29518:31;29572:46;29613:3;29602:9;29598:19;29590:6;29572:46;:::i;:::-;29666:2;29658:6;29654:15;29649:2;29638:9;29634:18;29627:43;29707:6;29701:3;29690:9;29686:19;29679:35;29763:9;29755:6;29751:22;29745:3;29734:9;29730:19;29723:51;29797:42;29832:6;29824;29797:42;:::i;:::-;29783:56;;;29888:9;29880:6;29876:22;29870:3;29859:9;29855:19;29848:51;29916:44;29953:6;29945;29916:44;:::i;:::-;29908:52;28964:1002;-1:-1:-1;;;;;;;;;;28964:1002:123:o;29971:636::-;30264:6;30253:9;30246:25;30227:4;-1:-1:-1;;;;;30380:2:123;30372:6;30368:15;30363:2;30352:9;30348:18;30341:43;30432:2;30424:6;30420:15;30415:2;30404:9;30400:18;30393:43;30484:2;30476:6;30472:15;30467:2;30456:9;30452:18;30445:43;;30525:3;30519;30508:9;30504:19;30497:32;30546:55;30596:3;30585:9;30581:19;30573:6;30546:55;:::i;30972:340::-;31149:2;31138:9;31131:21;31112:4;31169:45;31210:2;31199:9;31195:18;31187:6;31169:45;:::i;:::-;31161:53;;-1:-1:-1;;;;;31254:6:123;31250:55;31245:2;31234:9;31230:18;31223:83;30972:340;;;;;:::o;31317:291::-;31494:2;31483:9;31476:21;31457:4;31514:45;31555:2;31544:9;31540:18;31532:6;31514:45;:::i;:::-;31506:53;;31595:6;31590:2;31579:9;31575:18;31568:34;31317:291;;;;;:::o;32151:812::-;32562:25;32557:3;32550:38;32532:3;32617:6;32611:13;32633:75;32701:6;32696:2;32691:3;32687:12;32680:4;32672:6;32668:17;32633:75;:::i;:::-;32772:19;32767:2;32727:16;;;32759:11;;;32752:40;32817:13;;32839:76;32817:13;32901:2;32893:11;;32886:4;32874:17;;32839:76;:::i;:::-;32935:17;32954:2;32931:26;;32151:812;-1:-1:-1;;;;32151:812:123:o;33984:136::-;34023:3;34051:5;34041:39;;34060:18;;:::i;:::-;-1:-1:-1;;;34096:18:123;;33984:136::o;34893:287::-;35022:3;35060:6;35054:13;35076:66;35135:6;35130:3;35123:4;35115:6;35111:17;35076:66;:::i;:::-;35158:16;;;;;34893:287;-1:-1:-1;;34893:287:123:o","linkReferences":{}},"methodIdentifiers":{"COUNCIL_MEMBER_CHANGE()":"a0b21cdf","DEFAULT_ADMIN_ROLE()":"a217fddf","MAX_FEE()":"bc063e1a","NATIVE()":"a0cf0aea","PRECISION_SCALE()":"d7050f07","acceptCouncilSafe()":"b5058c50","activateMemberInStrategy(address,address)":"0d4a8b49","addStrategy(address)":"223e5479","addStrategyByPoolId(uint256)":"82d6a1e7","addressToMemberInfo(address)":"88cfe684","allo()":"d6d8428d","cloneNonce()":"33960459","communityFee()":"8961be6b","communityName()":"c6d572ae","councilSafe()":"6c53db9a","covenantIpfsHash()":"b64e39af","createPool(address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"9a72a86f","createPool(address,address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"c8a593e9","deactivateMemberInStrategy(address,address)":"22bcf999","decreasePower(uint256)":"5ecf71c5","enabledStrategies(address)":"3a871fe1","feeReceiver()":"b3f00674","gardenToken()":"db61d65c","getBasisStakedAmount()":"0331383c","getMemberPowerInStrategy(address,address)":"7817ee4f","getMemberStakedAmount(address)":"2c611c4a","getRoleAdmin(bytes32)":"248a9ca3","getStakeAmountWithFees()":"28c309e9","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increasePower(uint256)":"559de05d","initialize((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"96f0adec","isCouncilMember(address)":"ebd7dc52","isKickEnabled()":"1f787d28","isMember(address)":"a230c524","kickMember(address,address)":"6871eb4d","memberActivatedInStrategies(address,address)":"477a5cc0","memberPowerInStrategy(address,address)":"65e3864c","pendingCouncilSafe()":"68decabb","profileId()":"08386eba","registerStakeAmount()":"78a0b8a9","registry()":"7b103999","registryFactory()":"f86c5f89","removeStrategy(address)":"175188e8","removeStrategyByPoolId(uint256)":"73265c37","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setBasisStakedAmount(uint256)":"31f61bca","setCommunityFee(uint256)":"0d12bbdb","setCouncilSafe(address)":"397e2543","stakeAndRegisterMember()":"3517aa7d","strategiesByMember(address,uint256)":"2b38c69c","strategyTemplate()":"5c94e4d2","supportsInterface(bytes4)":"01ffc9a7","unregisterMember()":"b99b4370"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decreaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_currentPower\",\"type\":\"uint256\"}],\"name\":\"CantDecreaseMoreThanPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DecreaseUnderMinimum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KickNotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewFeeGreaterThanMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PointsDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotNewOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotStrategy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotGardenOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInCouncil\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueCannotBeZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"name\":\"AlloSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"BasisStakedAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newFee\",\"type\":\"uint256\"}],\"name\":\"CommunityFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safeOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newSafeOwner\",\"type\":\"address\"}],\"name\":\"CouncilSafeChangeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"CouncilSafeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"MemberActivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"MemberDeactivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberKicked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_unstakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_stakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"RegistryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNCIL_MEMBER_CHANGE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"activateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newStrategy\",\"type\":\"address\"}],\"name\":\"addStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"addStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"addressToMemberInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo\",\"outputs\":[{\"internalType\":\"contract FAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloneNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilSafe\",\"outputs\":[{\"internalType\":\"contract ISafe\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"covenantIpfsHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"deactivateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountUnstaked\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"enabledStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardenToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasisStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"getMemberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"getMemberStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakeAmountWithFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isCouncilMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isKickEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isMember\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"}],\"name\":\"kickMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"memberActivatedInStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActivated\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"memberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingCouncilSafe\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"removeStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"setBasisStakedAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newCommunityFee\",\"type\":\"uint256\"}],\"name\":\"setCommunityFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"setCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesByMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategiesAddresses\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyTemplate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"RegistryCommunity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_decreaseAmount","type":"uint256"},{"internalType":"uint256","name":"_currentPower","type":"uint256"}],"type":"error","name":"CantDecreaseMoreThanPower"},{"inputs":[],"type":"error","name":"DecreaseUnderMinimum"},{"inputs":[],"type":"error","name":"KickNotEnabled"},{"inputs":[],"type":"error","name":"NewFeeGreaterThanMax"},{"inputs":[],"type":"error","name":"PointsDeactivated"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[],"type":"error","name":"SenderNotNewOwner"},{"inputs":[],"type":"error","name":"SenderNotStrategy"},{"inputs":[],"type":"error","name":"StrategyDisabled"},{"inputs":[],"type":"error","name":"StrategyExists"},{"inputs":[],"type":"error","name":"UserAlreadyActivated"},{"inputs":[],"type":"error","name":"UserAlreadyDeactivated"},{"inputs":[],"type":"error","name":"UserAlreadyRegistered"},{"inputs":[],"type":"error","name":"UserNotGardenOwner"},{"inputs":[],"type":"error","name":"UserNotInCouncil"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ValueCannotBeZero"},{"inputs":[{"internalType":"address","name":"_allo","type":"address","indexed":false}],"type":"event","name":"AlloSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256","indexed":false}],"type":"event","name":"BasisStakedAmountSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256","indexed":false}],"type":"event","name":"CommunityFeeUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_safeOwner","type":"address","indexed":false},{"internalType":"address","name":"_newSafeOwner","type":"address","indexed":false}],"type":"event","name":"CouncilSafeChangeStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"_safe","type":"address","indexed":false}],"type":"event","name":"CouncilSafeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"uint256","name":"_pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"MemberActivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"MemberDeactivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_transferAddress","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberKicked","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_unstakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_stakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountStaked","type":"uint256","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32","indexed":false},{"internalType":"string","name":"_communityName","type":"string","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"RegistryInitialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNCIL_MEMBER_CHANGE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptCouncilSafe"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"activateMemberInStrategy"},{"inputs":[{"internalType":"address","name":"_newStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addStrategyByPoolId"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"addressToMemberInfo","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"bool","name":"isRegistered","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allo","outputs":[{"internalType":"contract FAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"cloneNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"councilSafe","outputs":[{"internalType":"contract ISafe","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"covenantIpfsHash","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivateMemberInStrategy"},{"inputs":[{"internalType":"uint256","name":"_amountUnstaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower"},{"inputs":[{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"enabledStrategies","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardenToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasisStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberPowerInStrategy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeAmountWithFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_amountStaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower"},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isCouncilMember","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isKickEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMember","outputs":[{"internalType":"bool","name":"_isMember","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_transferAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"kickMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"memberActivatedInStrategies","outputs":[{"internalType":"bool","name":"isActivated","type":"bool"}]},{"inputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"memberPowerInStrategy","outputs":[{"internalType":"uint256","name":"power","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingCouncilSafe","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registerStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategyByPoolId"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBasisStakedAmount"},{"inputs":[{"internalType":"uint256","name":"_newCommunityFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityFee"},{"inputs":[{"internalType":"address payable","name":"_safe","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCouncilSafe"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stakeAndRegisterMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"strategiesByMember","outputs":[{"internalType":"address","name":"strategiesAddresses","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategyTemplate","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"RegistryCommunity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"id":113} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"COUNCIL_MEMBER_CHANGE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PRECISION_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"acceptCouncilSafe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"activateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategy","inputs":[{"name":"_newStrategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addressToMemberInfo","inputs":[{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"member","type":"address","internalType":"address"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FAllo"}],"stateMutability":"view"},{"type":"function","name":"cloneNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"councilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISafe"}],"stateMutability":"view"},{"type":"function","name":"covenantIpfsHash","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"createPool","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"_strategy","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deactivateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_amountUnstaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enabledStrategies","inputs":[{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isEnabled","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"feeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"gardenToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getBasisStakedAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberPowerInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberStakedAmount","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStakeAmountWithFees","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"increasePower","inputs":[{"name":"_amountStaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCouncilMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isKickEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"_isMember","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"kickMember","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_transferAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"memberActivatedInStrategies","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isActivated","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberPowerInStrategy","inputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"power","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingCouncilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"profileId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerStakeAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"registryFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasisStakedAmount","inputs":[{"name":"_newAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityFee","inputs":[{"name":"_newCommunityFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCouncilSafe","inputs":[{"name":"_safe","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"strategiesByMember","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategiesAddresses","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"strategyTemplate","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AlloSet","inputs":[{"name":"_allo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BasisStakedAmountSet","inputs":[{"name":"_newAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CommunityFeeUpdated","inputs":[{"name":"_newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CouncilSafeChangeStarted","inputs":[{"name":"_safeOwner","type":"address","indexed":false,"internalType":"address"},{"name":"_newSafeOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CouncilSafeSet","inputs":[{"name":"_safe","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberActivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberDeactivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberKicked","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_transferAddress","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerDecreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_unstakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerIncreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_stakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountStaked","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"_poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_token","type":"address","indexed":false,"internalType":"address"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryInitialized","inputs":[{"name":"_profileId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_communityName","type":"string","indexed":false,"internalType":"string"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyAdded","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CantDecreaseMoreThanPower","inputs":[{"name":"_decreaseAmount","type":"uint256","internalType":"uint256"},{"name":"_currentPower","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DecreaseUnderMinimum","inputs":[]},{"type":"error","name":"KickNotEnabled","inputs":[]},{"type":"error","name":"NewFeeGreaterThanMax","inputs":[]},{"type":"error","name":"PointsDeactivated","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SenderNotNewOwner","inputs":[]},{"type":"error","name":"SenderNotStrategy","inputs":[]},{"type":"error","name":"StrategyDisabled","inputs":[]},{"type":"error","name":"StrategyExists","inputs":[]},{"type":"error","name":"UserAlreadyActivated","inputs":[]},{"type":"error","name":"UserAlreadyDeactivated","inputs":[]},{"type":"error","name":"UserAlreadyRegistered","inputs":[]},{"type":"error","name":"UserNotGardenOwner","inputs":[]},{"type":"error","name":"UserNotInCouncil","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ValueCannotBeZero","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033","sourceMap":"1630:21524:131:-:0;;;7758:145;;;;;;;;;-1:-1:-1;1716:1:69;1821:7;:22;;;7840:56:131;;2090:34;;7840:13;:56::i;:::-;1630:21524;;7172:247:59;7255:25;4604:12;;;:6;:12;;;;;;;;:22;;;;;7311:34;;;;7360:52;;4604:22;;7311:34;;4604:22;;:12;;7360:52;;7255:25;7360:52;7245:174;7172:247;;:::o;1630:21524:131:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033","sourceMap":"1630:21524:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:59;;;;;;:::i;:::-;;:::i;:::-;;;516:14:144;;509:22;491:41;;479:2;464:18;2732:202:59;;;;;;;;20889:107:131;20970:19;;20889:107;;;689:25:144;;;677:2;662:18;20889:107:131;543:177:144;6534:24:131;;;;;;21190:280;;;;;;:::i;:::-;;:::i;:::-;;10866:1179;;;;;;:::i;:::-;;:::i;17581:120::-;;;;;;:::i;:::-;;:::i;6292:25::-;;;;;;;;;16639:120;;;;;;:::i;:::-;;:::i;12051:691::-;;;;;;:::i;:::-;;:::i;4504:129:59:-;;;;;;:::i;:::-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;;4504:129;20416:467:131;;;:::i;7409:82::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2704:55:144;;;2686:74;;2674:2;2659:18;7409:82:131;2540:226:144;16048:143:131;;;;;;:::i;:::-;-1:-1:-1;;;;;16143:28:131;16117:7;16143:28;;;:19;:28;;;;;:41;;;;16048:143;4929:145:59;;;;;;:::i;:::-;;:::i;21002:182:131:-;;;;;;:::i;:::-;;:::i;6714:25::-;;;;;;18503:1907;;;:::i;6038:214:59:-;;;;;;:::i;:::-;;:::i;17707:240:131:-;;;;;;:::i;:::-;;:::i;7164:68::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7497:107;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13179:998;;;;;;:::i;:::-;;:::i;6677:31::-;;;;;-1:-1:-1;;;;;6677:31:131;;;14317:1554;;;;;;:::i;:::-;;:::i;7238:98::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22581:571;;;;;;:::i;:::-;;:::i;6745:41::-;;;;;-1:-1:-1;;;;;6745:41:131;;;6926:24;;;;;-1:-1:-1;;;;;6926:24:131;;;17154:229;;;;;;:::i;:::-;;:::i;15877:165::-;;;;;;:::i;:::-;-1:-1:-1;;;;;15994:30:131;;;15968:7;15994:30;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;;15877:165;6461:34;;;;;;6864:25;;;;;-1:-1:-1;;;;;6864:25:131;;;16320:313;;;;;;:::i;:::-;;:::i;7343:60::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7343:60:131;;;;;;;;;;;;;-1:-1:-1;;;;;4307:55:144;;;4289:74;;4394:2;4379:18;;4372:34;;;;4449:14;4442:22;4422:18;;;4415:50;4277:2;4262:18;7343:60:131;4093:378:144;6501:27:131;;;;;;3021:145:59;;;;;;:::i;:::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:59;;;;;;;;;;;;;;;3021:145;7909:1945:131;;;;;;:::i;:::-;;:::i;9860:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;11918:25:144;;;-1:-1:-1;;;;;11979:55:144;;;11974:2;11959:18;;11952:83;11891:18;9860:341:131;11744:297:144;2042:82:131;;2090:34;2042:82;;1796:75;;1829:42;1796:75;;2153:49:59;;2198:4;2153:49;;18315:182:131;;;;;;:::i;:::-;-1:-1:-1;;;;;18423:28:131;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18315:182;6609:26;;;;;-1:-1:-1;;;;;6609:26:131;;;18138:171;;;:::i;7070:30::-;;;:::i;:::-;;;;;;;:::i;21650:453::-;;;:::i;7697:54::-;;;:::i;7037:27::-;;;:::i;10207:653::-;;;;;;:::i;:::-;;:::i;5354:147:59:-;;;;;;:::i;:::-;;:::i;6956:17:131:-;;;;;-1:-1:-1;;;;;6956:17:131;;;7642:49;;7684:7;7642:49;;6895:25;;;;;-1:-1:-1;;;;;6895:25:131;;;21512:132;;;;;;:::i;:::-;;:::i;6641:30::-;;;;;-1:-1:-1;;;;;6641:30:131;;;2732:202:59;2817:4;-1:-1:-1;;;;;;2840:47:59;;2855:32;2840:47;;:87;;-1:-1:-1;;;;;;;;;;937:40:84;;;2891:36:59;2833:94;2732:202;-1:-1:-1;;2732:202:59:o;21190:280:131:-;21258:17;:15;:17::i;:::-;7731:20;7684:7;7731:2;:20;:::i;:::-;21289:16;:26;21285:86;;;21338:22;;;;;;;;;;;;;;21285:86;21380:12;:31;;;21426:37;;689:25:144;;;21426:37:131;;677:2:144;662:18;21426:37:131;;;;;;;;21190:280;:::o;10866:1179::-;10953:34;10979:7;10953:25;:34::i;:::-;10997:30;11017:9;10997:19;:30::i;:::-;11037:29;11056:9;11037:18;:29::i;:::-;-1:-1:-1;;;;;11081:36:131;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;11077:107;;;11151:22;;;;;;;;;;;;;;11077:107;-1:-1:-1;;;;;11217:28:131;;;11194:20;11217:28;;;:19;:28;;;;;;;;;11194:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11340:19;;;;11389:9;-1:-1:-1;;;;;11374:40:131;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;;;;;;:::i;:::-;;11370:384;;11491:51;;-1:-1:-1;;;11491:51:131;;-1:-1:-1;;;;;15092:55:144;;;11491:51:131;;;15074:74:144;11540:1:131;15164:18:144;;;15157:34;11491:39:131;;;;;15047:18:144;;11491:51:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11472:70;;11370:384;;;11609:32;11578:9;-1:-1:-1;;;;;11563:40:131;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;;;;;;:::i;:::-;;11559:195;;11676:67;;-1:-1:-1;;;11676:67:131;;-1:-1:-1;;;;;15092:55:144;;;11676:67:131;;;15074:74:144;15164:18;;;15157:34;;;11676:39:131;;;;;15047:18:144;;11676:67:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11657:86;;11559:195;-1:-1:-1;;;;;11764:30:131;;;;;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;:60;;;11853:36;;;:27;:36;;;;;:47;;;;;;;;:54;;-1:-1:-1;;11853:54:131;11903:4;11853:54;;;;;;11918:27;;;:18;:27;;;;;:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11918:43:131;;;;;11977:61;;15956:34:144;;;16006:18;;15999:43;;;;16058:18;;;16051:34;;;11977:61:131;;15883:2:144;15868:18;11977:61:131;;;;;;;10943:1102;;;10866:1179;;:::o;17581:120::-;17641:17;:15;:17::i;:::-;17668:26;17684:9;17668:15;:26::i;:::-;17581:120;:::o;16639:::-;16699:17;:15;:17::i;:::-;16726:26;16739:12;16726;:26::i;12051:691::-;12140:34;12166:7;12140:25;:34::i;:::-;12184:29;12203:9;12184:18;:29::i;:::-;12223:42;12243:10;12255:9;12223:19;:42::i;:::-;-1:-1:-1;;;;;12281:36:131;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;12276:110;;12351:24;;;;;;;;;;;;;;12276:110;-1:-1:-1;;;;;12396:36:131;;;12446:5;12396:36;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;:55;;-1:-1:-1;;12396:55:131;;;12461:30;;;:21;:30;;;;;:41;;;;;;;;;:45;12516:44;12424:7;12433:9;12516:24;:44::i;:::-;12690:45;;;-1:-1:-1;;;;;16349:15:144;;;16331:34;;16401:15;;16396:2;16381:18;;16374:43;12690:45:131;;16243:18:144;12690:45:131;;;;;;;12051:691;;:::o;20416:467::-;20539:15;;20471:7;;-1:-1:-1;;;;;20539:15:131;20471:7;20634:21;7684:7;20634:3;:21;:::i;:::-;20617:12;;20595:19;;:34;;;;:::i;:::-;20594:62;;;;:::i;:::-;20565:91;-1:-1:-1;20666:24:131;20777:21;7684:7;20777:3;:21;:::i;:::-;20728:44;;-1:-1:-1;;;20728:44:131;;20766:4;20728:44;;;2686:74:144;-1:-1:-1;;;;;20728:29:131;;;;;2659:18:144;;20728:44:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20706:19;;:66;;;;:::i;:::-;20705:94;;;;:::i;:::-;20666:133;;20860:16;20839:18;20817:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;20810:66;;;;;20416:467;:::o;7409:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7409:82:131;;-1:-1:-1;7409:82:131;;-1:-1:-1;7409:82:131:o;4929:145:59:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5042:25:::1;5053:4;5059:7;5042:10;:25::i;:::-;4929:145:::0;;;:::o;21002:182:131:-;21071:17;:15;:17::i;:::-;21098:19;:32;;;21145;;689:25:144;;;21145:32:131;;677:2:144;662:18;21145:32:131;543:177:144;18503:1907:131;2261:21:69;:19;:21::i;:::-;18585:10:131::1;18567:15;18632:28:::0;;;:19:::1;:28;::::0;;;;18719:15:::1;::::0;18632:28;;-1:-1:-1;;;;;18719:15:131;;::::1;::::0;18814:21:::1;7684:7;18814:3;:21;:::i;:::-;18797:12;;18775:19;;:34;;;;:::i;:::-;18774:62;;;;:::i;:::-;18745:91:::0;-1:-1:-1;18846:24:131::1;18957:21;7684:7;18957:3;:21;:::i;:::-;18908:44;::::0;-1:-1:-1;;;18908:44:131;;18946:4:::1;18908:44;::::0;::::1;2686:74:144::0;-1:-1:-1;;;;;18908:29:131;::::1;::::0;::::1;::::0;2659:18:144;;18908:44:131::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18886:19;;:66;;;;:::i;:::-;18885:94;;;;:::i;:::-;-1:-1:-1::0;;;;;18423:28:131;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18846:133;;-1:-1:-1;18989:1415:131::1;;19027:22;::::0;::::1;:29:::0;;-1:-1:-1;;19027:29:131::1;19052:4;19027:29:::0;;::::1;::::0;;;19096:19:::1;::::0;19071:22;;::::1;:44:::0;19201:48:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19236:11:::1;::::0;19201:48:::1;::::0;;-1:-1:-1;;;;;19236:11:131::1;19201;:48::i;:::-;19264:143;19310:7;19327:4;19377:16;19356:18;19334:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;19264:11;::::0;-1:-1:-1;;;;;19264:11:131::1;::::0;:143;;:28:::1;:143::i;:::-;19758:53;;;;;;;;;;;;;;;;;::::0;19792:18:::1;19758:11;:53::i;:::-;19829:22:::0;;19825:175:::1;;19871:39;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19898:11:::1;::::0;19871:39:::1;::::0;;-1:-1:-1;;;;;19898:11:131::1;19871;:39::i;:::-;19953:11;::::0;19928::::1;::::0;:57:::1;::::0;-1:-1:-1;;;;;19928:11:131;;::::1;::::0;19953::::1;19966:18:::0;19928:24:::1;:57::i;:::-;20013:49;;;;;;;;;;;;;;;;;::::0;20045:16:::1;20013:11;:49::i;:::-;20080:20:::0;;20076:252:::1;;20120:93;;;;;;;;;;;;;;;;;;20174:14;-1:-1:-1::0;;;;;20174:36:131::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20120:11;:93::i;:::-;20231:82;20256:14;-1:-1:-1::0;;;;;20256:36:131::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20231:11;::::0;-1:-1:-1;;;;;20231:11:131::1;::::0;20296:16;20231:24:::1;:82::i;:::-;20373:19;::::0;20347:46:::1;::::0;;-1:-1:-1;;;;;15092:55:144;;15074:74;;15179:2;15164:18;;15157:34;;;;20347:46:131::1;::::0;15047:18:144;20347:46:131::1;;;;;;;18989:1415;18557:1853;;;;;2303:20:69::0;1716:1;2809:7;:22;2629:209;2303:20;18503:1907:131:o;6038:214:59:-;-1:-1:-1;;;;;6133:23:59;;734:10:81;6133:23:59;6125:83;;;;-1:-1:-1;;;6125:83:59;;17295:2:144;6125:83:59;;;17277:21:144;17334:2;17314:18;;;17307:30;17373:34;17353:18;;;17346:62;17444:17;17424:18;;;17417:45;17479:19;;6125:83:59;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;17707:240:131:-;17771:17;:15;:17::i;:::-;17798:25;17817:5;17798:18;:25::i;:::-;17833:18;:26;;-1:-1:-1;;;;;;17833:26:131;-1:-1:-1;;;;;17833:26:131;;;;;;;;;17907:11;;17874:66;;;17907:11;;;;16331:34:144;;16396:2;16381:18;;16374:43;;;;17874:66:131;;16243:18:144;17874:66:131;16096:327:144;13179:998:131;2261:21:69;:19;:21::i;:::-;13255:26:131::1;:24;:26::i;:::-;13308:10;13291:14;13364:26:::0;;;:18:::1;:26;::::0;;;;;;;13328:62;;;;;;::::1;::::0;;;;;;;;;;;;13364:26;;13328:62;;::::1;13364:26:::0;13328:62;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;13328:62:131::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;13401:24;13441:9:::0;13453:1:::1;13441:13;;13436:533;13460:16;:23;13456:1;:27;13436:533;;;13643:16;13660:1;13643:19;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;13628:72:::1;::::0;-1:-1:-1;;;13628:72:131;;-1:-1:-1;;;;;15092:55:144;;;13628:72:131::1;::::0;::::1;15074:74:144::0;15164:18;;;15157:34;;;13628:49:131;;::::1;::::0;::::1;::::0;15047:18:144;;13628:72:131::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13609:91:::0;-1:-1:-1;13718:21:131;;13714:229:::1;;-1:-1:-1::0;;;;;13759:29:131;::::1;;::::0;;;:21:::1;:29;::::0;;;;13789:19;;13813:16;;13759:29;13789:16;;13806:1;;13789:19;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13759:50:131::1;-1:-1:-1::0;;;;;13759:50:131::1;;;;;;;;;;;;;:70;;;;;;;:::i;:::-;;;;;;;;13847:81;;;;;;;;;;;;;;;;;::::0;13877:21:::1;:29;13899:6;-1:-1:-1::0;;;;;13877:29:131::1;-1:-1:-1::0;;;;;13877:29:131::1;;;;;;;;;;;;:50;13907:16;13924:1;13907:19;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13877:50:131::1;-1:-1:-1::0;;;;;13877:50:131::1;;;;;;;;;;;;;13847:11;:81::i;:::-;13485:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13436:533;;;-1:-1:-1::0;13979:11:131::1;::::0;:66:::1;::::0;-1:-1:-1;;;;;13979:11:131::1;14008:6:::0;14024:4:::1;14031:13:::0;13979:28:::1;:66::i;:::-;-1:-1:-1::0;;;;;14055:27:131;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:57:::0;;14099:13;;14055:27;:57:::1;::::0;14099:13;;14055:57:::1;:::i;:::-;::::0;;;-1:-1:-1;;14127:43:131::1;::::0;;-1:-1:-1;;;;;15092:55:144;;15074:74;;15179:2;15164:18;;15157:34;;;14127:43:131::1;::::0;15047:18:144;14127:43:131::1;;;;;;;;13245:932;;;2303:20:69::0;1716:1;2809:7;:22;2629:209;14317:1554:131;2261:21:69;:19;:21::i;:::-;14395:26:131::1;:24;:26::i;:::-;14448:10;14431:14;14505:26:::0;;;:18:::1;:26;::::0;;;;;;;14642:19:::1;::::0;14581::::1;:27:::0;;;;;;:40:::1;;::::0;14505:26;;14431:14;14642:19;14581:58:::1;::::0;14624:15;;14581:58:::1;:::i;:::-;:80;14577:140;;;14684:22;;;;;;;;;;;;;;14577:140;14726:11;::::0;:49:::1;::::0;-1:-1:-1;;;;;14726:11:131::1;14751:6:::0;14759:15;14726:24:::1;:49::i;:::-;14790:9;14785:951;14809:23:::0;;14805:27;::::1;14785:951;;;14853:16;14872;14889:1;14872:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14872:19:131::1;::::0;-1:-1:-1;14909:60:131::1;14872:19:::0;-1:-1:-1;;;14909:26:131::1;:60::i;:::-;14905:804;;;15008:63;::::0;;;;-1:-1:-1;;;;;15092:55:144;;;15008:63:131::1;::::0;::::1;15074:74:144::0;15164:18;;;15157:34;;;15008:38:131;::::1;::::0;::::1;::::0;15047:18:144;;15008:63:131::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14989:82;;15089:20;15112:21;:29;15134:6;-1:-1:-1::0;;;;;15112:29:131::1;-1:-1:-1::0;;;;;15112:29:131::1;;;;;;;;;;;;:50;15142:16;15159:1;15142:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15142:19:131::1;15112:50:::0;;;::::1;::::0;;;;;;;;;;-1:-1:-1;15184:31:131;;::::1;15180:259;;;15246:57;::::0;::::1;::::0;;::::1;::::0;::::1;18485:25:144::0;;;18526:18;;;18519:34;;;18458:18;;15246:57:131::1;18311:248:144::0;15180:259:131::1;-1:-1:-1::0;;;;;15350:29:131;::::1;;::::0;;;:21:::1;:29;::::0;;;;15380:19;;15404:16;;15350:29;15380:16;;15397:1;;15380:19;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15380:19:131::1;15350:50:::0;;;::::1;::::0;;;;;;;;:70;;:50;;15380:19;15350:70:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;14971:482:131::1;14905:804;;;15583:23:::0;;15566:16;;15583:27:::1;::::0;15609:1:::1;::::0;15583:27:::1;:::i;:::-;15566:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;15566:45:131::1;15544:16;15561:1;15544:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1::0;;;;;15544:67:131::1;;;;;-1:-1:-1::0;;;;;15544:67:131::1;;;;;;15629:16;:22;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15629:22:131;;;;;-1:-1:-1;;;;;;15629:22:131::1;::::0;;;;;15669:25:::1;15685:8:::0;15669:15:::1;:25::i;:::-;-1:-1:-1::0;14834:3:131;::::1;::::0;::::1;:::i;:::-;;;;14785:951;;;-1:-1:-1::0;;;;;;15745:27:131;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:59:::0;;15789:15;;15745:27;:59:::1;::::0;15789:15;;15745:59:::1;:::i;:::-;::::0;;;-1:-1:-1;;15819:45:131::1;::::0;;-1:-1:-1;;;;;15092:55:144;;15074:74;;15179:2;15164:18;;15157:34;;;15819:45:131::1;::::0;15047:18:144;15819:45:131::1;14892:305:144::0;22581:571:131;2261:21:69;:19;:21::i;:::-;22674:17:131::1;:15;:17::i;:::-;22706:13;::::0;::::1;;22701:68;;22742:16;;;;;;;;;;;;;;22701:68;-1:-1:-1::0;;;;;18423:28:131;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22778:75:::1;;22823:19;;-1:-1:-1::0;;;22823:19:131::1;;;;;;;;;;;22778:75;-1:-1:-1::0;;;;;22885:28:131;;::::1;22862:20;22885:28:::0;;;:19:::1;:28;::::0;;;;;;;;22862:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;::::1;;;;::::0;;;;22923:32:::1;22905:7:::0;22923:23:::1;:32::i;:::-;-1:-1:-1::0;;;;;22972:28:131;;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;22965:35;;-1:-1:-1;;;;;;22965:35:131::1;::::0;;-1:-1:-1;22965:35:131;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;22965:35:131::1;::::0;;23011:11:::1;::::0;23050:19;;::::1;::::0;23011:59;;-1:-1:-1;;;23011:59:131;;15092:55:144;;;23011:59:131::1;::::0;::::1;15074:74:144::0;15164:18;;;15157:34;;;;23011:11:131;;::::1;::::0;:20:::1;::::0;15047:18:144;;23011:59:131::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23125:19:131::1;::::0;;::::1;::::0;23085:60:::1;::::0;;-1:-1:-1;;;;;15974:15:144;;;15956:34;;16026:15;;16006:18;;;15999:43;;;;16058:18;;16051:34;23085:60:131::1;::::0;15883:2:144;15868:18;23085:60:131::1;;;;;;;22664:488;2303:20:69::0;1716:1;2809:7;:22;2629:209;17154:229:131;17219:17;:15;:17::i;:::-;17273:4;;:20;;-1:-1:-1;;;17273:20:131;;;;;689:25:144;;;17246:16:131;;-1:-1:-1;;;;;17273:4:131;;:12;;662:18:144;;17273:20:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17273:20:131;;;;;;;;;;;;:::i;:::-;:29;;;17246:57;;17313:28;17332:8;17313:18;:28::i;:::-;17351:25;17367:8;17351:15;:25::i;16320:313::-;16382:17;:15;:17::i;:::-;16436:4;;:20;;-1:-1:-1;;;16436:20:131;;;;;689:25:144;;;16409:16:131;;-1:-1:-1;;;;;16436:4:131;;:12;;662:18:144;;16436:20:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16436:20:131;;;;;;;;;;;;:::i;:::-;:29;;;16409:57;;16476:28;16495:8;16476:18;:28::i;:::-;16518:60;-1:-1:-1;;;;;16518:26:131;;-1:-1:-1;;;16518:26:131;:60::i;:::-;16514:113;;;16594:22;16607:8;16594:12;:22::i;7909:1945::-;7996:48;8023:6;:19;;;7996:18;:48::i;:::-;8054:39;8073:6;:19;;;8054:18;:39::i;:::-;8122:12;;8103:32;;:18;:32::i;:::-;8145:43;8164:6;:23;;;8145:18;:43::i;:::-;8198:44;8217:6;:24;;;8198:18;:44::i;:::-;8257:20;;;;:25;8253:95;;8298:39;8317:6;:19;;;8298:18;:39::i;:::-;8370:12;;8357:4;:26;;-1:-1:-1;;;;;8357:26:131;;;-1:-1:-1;;;;;;8357:26:131;;;;;;;8407:19;;;;8393:11;:33;;;;;;;;;;;8440:27;;;;8370:12;8440:32;8436:89;;8495:19;;;;;;;;;;;;;;8436:89;8556:27;;;;8534:19;:49;8608:20;;;;8593:12;:35;8654:21;;;;8638:13;:37;;-1:-1:-1;;8638:37:131;;;;;;;;;;8701:21;;;;8685:13;;:37;;:13;:37;:::i;:::-;-1:-1:-1;8751:23:131;;;;8732:16;;:42;;:16;:42;:::i;:::-;-1:-1:-1;8802:23:131;;;;8784:15;:41;;-1:-1:-1;;;;;;8784:41:131;;;-1:-1:-1;;;;;8784:41:131;;;;;;;8849:19;;;;8835:11;:33;;;;;;;;;;;;;8784:41;8898:19;;;8878:11;:40;;;;;;;;;;8947:24;;;;8928:16;:43;;;;;;;;;;;;;8982:54;;2090:34;;8982:10;:54::i;:::-;9068:4;;;;;;;;;-1:-1:-1;;;;;9068:4:131;-1:-1:-1;;;;;9068:16:131;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9047:8;:40;;-1:-1:-1;;;;;;9047:40:131;-1:-1:-1;;;;;9047:40:131;;;;;;9124:11;;:23;;;;;;;;-1:-1:-1;;9124:11:131;;;;;:21;;:23;;;;;-1:-1:-1;;9124:23:131;;;;;;;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9124:23:131;;;;;;;;;;;;:::i;:::-;9098:49;;9157:36;9210:6;:13;9226:1;9210:17;;;;:::i;:::-;9196:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9196:32:131;;9157:71;;9244:9;9239:103;9263:6;:13;9259:1;:17;9239:103;;;9322:6;9329:1;9322:9;;;;;;;;:::i;:::-;;;;;;;9297:19;9317:1;9297:22;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9297:34:131;;;:22;;;;;;;;;;;:34;9278:3;;;;:::i;:::-;;;;9239:103;;;-1:-1:-1;9414:11:131;;9372:26;;-1:-1:-1;;;;;9414:11:131;;;;9352:19;;9372:30;;9414:11;;9372:30;:::i;:::-;9352:51;;;;;;;;:::i;:::-;;;;;;:74;-1:-1:-1;;;;;9352:74:131;;;-1:-1:-1;;;;;9352:74:131;;;;;9498:4;9436:19;9485:1;9456:19;:26;:30;;;;:::i;:::-;9436:51;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9436:67:131;;;:51;;;;;;;;;:67;9615:8;;9638:13;;;;9668:16;;;;9615:106;;;;;:8;;;;;:22;;:106;;9638:13;9653;;9694:4;;9701:19;;9615:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9591:9;:130;9732:36;;;;:14;;:36;;;;;:::i;:::-;;9784:63;9804:9;;9815:13;9830:6;:16;;;9784:63;;;;;;;;:::i;:::-;;;;;;;;7986:1868;;7909:1945;:::o;9860:341::-;10093:16;;10111:10;:12;;10003:14;;;;;;10075:49;;-1:-1:-1;;;;;10093:16:131;;10003:14;10111:12;;;:::i;:::-;;;;;10075:17;:49::i;:::-;10051:73;;10141:53;10152:13;10167:6;10175:7;10184:9;10141:10;:53::i;:::-;10134:60;;;;;9860:341;;;;;;:::o;18138:171::-;18202:18;;-1:-1:-1;;;;;18202:18:131;18188:10;:32;18184:89;;18243:19;;;;;;;;;;;;;;18184:89;18282:20;:18;:20::i;7070:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21650:453::-;2261:21:69;:19;:21::i;:::-;21726:10:131::1;21746:34;21726:10:::0;21746:25:::1;:34::i;:::-;21790:32;21814:7;21790:23;:32::i;:::-;-1:-1:-1::0;;;;;21855:28:131;;::::1;21832:20;21855:28:::0;;;:19:::1;:28;::::0;;;;;;;21832:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;;::::0;;;;21900:28;;;-1:-1:-1;;;;;;21893:35:131;;::::1;::::0;;;;;;;-1:-1:-1;;21893:35:131;;::::1;::::0;;;21945:18:::1;:27:::0;;;;;21832:51;;21938:34:::1;::::0;21945:27;21938:34:::1;:::i;:::-;21983:11;::::0;22013:19:::1;::::0;::::1;::::0;21983:50:::1;::::0;-1:-1:-1;;;21983:50:131;;-1:-1:-1;;;;;15092:55:144;;;21983:50:131::1;::::0;::::1;15074:74:144::0;15164:18;;;15157:34;;;;21983:11:131;::::1;::::0;:20:::1;::::0;15047:18:144;;21983:50:131::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22076:19:131::1;::::0;;::::1;::::0;22048:48:::1;::::0;;-1:-1:-1;;;;;15092:55:144;;15074:74;;15164:18;;;15157:34;;;;22048:48:131::1;::::0;15047:18:144;22048:48:131::1;;;;;;;21698:405;;2303:20:69::0;1716:1;2809:7;:22;2629:209;7697:54:131;7731:20;7684:7;7731:2;:20;:::i;:::-;7697:54;:::o;7037:27::-;;;;;;;:::i;10207:653::-;10391:14;;1829:42;-1:-1:-1;;;;;10471:20:131;;;10467:65;;-1:-1:-1;10515:6:131;10467:65;10552:9;10541:20;;10572:31;10606:14;10572:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10572:48:131;;;;;;;;;;;;;;;;-1:-1:-1;;10640:4:131;;10687:9;;10708:19;;10572:48;;-1:-1:-1;;;;;;10640:4:131;;;;:33;;-1:-1:-1;10687:9:131;;-1:-1:-1;10698:8:131;;-1:-1:-1;10708:19:131;;10719:7;;10708:19;;;:::i;:::-;;;;;;;;;;;;;10729:5;10736:1;10739:9;10750:14;10640:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10631:143;;10790:63;10802:6;10810:8;10828:4;10835:6;10843:9;10790:63;;;;;;;;;;:::i;:::-;;;;;;;;10425:435;;10207:653;;;;;;;:::o;5354:147:59:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5468:26:::1;5480:4;5486:7;5468:11;:26::i;21512:132:131:-:0;-1:-1:-1;;;;;3130:29:59;;21575:4:131;3130:29:59;;;:12;;:29;:12;:29;;;;;21598:39:131;3021:145:59;3564:155:131;3650:10;3107:4:59;3130:29;;;:12;;:29;:12;:29;;;;;3614:99:131;;3684:18;;;;;;;;;;;;;;3874:156;-1:-1:-1;;;;;18423:28:131;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:75;;3994:19;;-1:-1:-1;;;3994:19:131;;;;;;;;;;;4036:162;-1:-1:-1;;;;;4112:28:131;;;;;;:17;:28;;;;;;;;4107:85;;4163:18;;;;;;;;;;;;;;17015:133;-1:-1:-1;;;;;17089:22:131;;17085:56;;17120:21;;;;;;;;;;;;;;17389:186;17452:29;17471:9;17452:18;:29::i;:::-;-1:-1:-1;;;;;17491:28:131;;17522:5;17491:28;;;:17;:28;;;;;;;;;:36;;-1:-1:-1;;17491:36:131;;;17542:26;;2686:74:144;;;17542:26:131;;2659:18:144;17542:26:131;2540:226:144;16765:244:131;-1:-1:-1;;;;;16832:31:131;;;;;;:17;:31;;;;;;;;16828:85;;;16886:16;;;;;;;;;;;;;;16828:85;-1:-1:-1;;;;;16922:31:131;;;;;;:17;:31;;;;;;;;;:38;;-1:-1:-1;;16922:38:131;16956:4;16922:38;;;16975:27;;2686:74:144;;;16975:27:131;;2659:18:144;16975:27:131;2540:226:144;4204:171:131;4307:9;-1:-1:-1;;;;;4296:20:131;:7;-1:-1:-1;;;;;4296:20:131;;4292:77;;4339:19;;;;;;;;;;;;;;12748:425;-1:-1:-1;;;;;12874:27:131;;12837:34;12874:27;;;:18;:27;;;;;;12911:256;12935:23;;12931:27;;12911:256;;;13006:9;-1:-1:-1;;;;;12983:32:131;:16;13000:1;12983:19;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12983:19:131;:32;12979:178;;13074:23;;13057:16;;13074:27;;13100:1;;13074:27;:::i;:::-;13057:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13057:45:131;13035:16;13052:1;13035:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1;;;;;13035:67:131;;;;;-1:-1:-1;;;;;13035:67:131;;;;;;13120:16;:22;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13120:22:131;;;;;-1:-1:-1;;;;;;13120:22:131;;;;;;12979:178;12960:3;;;;:::i;:::-;;;;12911:256;;;;12827:346;12748:425;;:::o;3460:103:59:-;3526:30;3537:4;734:10:81;3526::59;:30::i;7587:233::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:59;;;;;;;;;;;;7665:149;;7708:12;;;;7740:4;7708:12;;;;;;;;-1:-1:-1;;;;;7708:29:59;;;;;;;;;;:36;;-1:-1:-1;;7708:36:59;;;;;;;7763:40;;734:10:81;;7708:12:59;;7763:40;;7708:12;7763:40;7587:233;;:::o;2336:287:69:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:69;;30815:2:144;2460:63:69;;;30797:21:144;30854:2;30834:18;;;30827:30;30893:33;30873:18;;;30866:61;30944:18;;2460:63:69;30613:355:144;2460:63:69;1759:1;2598:7;:18;2336:287::o;6994:145:36:-;7061:71;7124:2;7128;7077:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7077:54:36;;;;;;;;;;;;;;-1:-1:-1;;;;;7077:54:36;;;;;7061:15;:71::i;1355:203:77:-;1482:68;;-1:-1:-1;;;;;15974:15:144;;;1482:68:77;;;15956:34:144;16026:15;;16006:18;;;15999:43;16058:18;;;16051:34;;;1455:96:77;;1475:5;;1505:27;;15868:18:144;;1482:68:77;;;;-1:-1:-1;;1482:68:77;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:77;-1:-1:-1;;;;;;1482:68:77;;;;;;;;;;1455:19;:96::i;6548:139:36:-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:36;;;;;;;;;;;;;;-1:-1:-1;;;;;6628:51:36;;;;;6612:15;:68::i;941:175:77:-;1050:58;;-1:-1:-1;;;;;15092:55:144;;1050:58:77;;;15074:74:144;15164:18;;;15157:34;;;1023:86:77;;1043:5;;-1:-1:-1;;;1073:23:77;15047:18:144;;1050:58:77;14892:305:144;7991:234:59;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:59;;;;;;;;;;;;8070:149;;;8144:5;8112:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8112:29:59;;;;;;;;;;:37;;-1:-1:-1;;8112:37:59;;;8168:40;734:10:81;;8112:12:59;;8168:40;;8144:5;8168:40;7991:234;;:::o;3725:143:131:-;3798:10;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;-1:-1:-1;;;;;18397:54:131;;;;;;;;;;;;;;;;;;;;;;;;;;3784:78;;3832:19;;-1:-1:-1;;;3832:19:131;;;;;;;;;;;1349:282:85;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:85:o;22109:466:131:-;-1:-1:-1;;;;;22214:27:131;;22178:33;22214:27;;;:18;:27;;;;;;;;22178:63;;;;;;;;;;;;;;;;;;;22214:27;;22178:63;;;22214:27;22178:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22178:63:131;;;;;;;;;;;;;;;;;;;;;;;22322:9;22317:252;22341:16;:23;22337:1;:27;22317:252;;;22512:16;22529:1;22512:19;;;;;;;;:::i;:::-;;;;;;;;;;;22497:61;;;;;-1:-1:-1;;;;;2704:55:144;;;22497:61:131;;;2686:74:144;22497:52:131;;;;;;2659:18:144;;22497:61:131;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22366:3;;;;;:::i;:::-;;;;22317:252;;4749:279:6;4867:36;;-1:-1:-1;;4884:10:6;31791:2:144;31787:15;31783:53;4867:36:6;;;31771:66:144;31853:12;;;31846:28;;;4823:7:6;;;;31890:12:144;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;17953:179:131:-;18022:18;;;18002:11;:39;;-1:-1:-1;;;;;18022:18:131;;-1:-1:-1;;;;;;18002:39:131;;;;;;;18051:25;;;18091:34;;-1:-1:-1;2686:74:144;;18091:34:131;;2674:2:144;2659:18;18091:34:131;;;;;;;17953:179::o;3844:479:59:-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:59;;;;;;;;;;;;3927:390;;4115:28;4135:7;4115:19;:28::i;:::-;4214:38;4242:4;4249:2;4214:19;:38::i;:::-;4022:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4022:252:59;;;;;;;;;;-1:-1:-1;;;3970:336:59;;;;;;;:::i;181:376:36:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;5196:642:77:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:77;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:77;;33171:2:144;5720:111:77;;;33153:21:144;33210:2;33190:18;;;33183:30;33249:34;33229:18;;;33222:62;33320:12;33300:18;;;33293:40;33350:19;;5720:111:77;32969:406:144;704:427:85;768:4;975:68;1008:7;-1:-1:-1;;;975:32:85;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:85;1093:7;-1:-1:-1;;;;;;1060:32:85;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:85:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;33542:79:144;;4592:71:85;;;;33524:98:144;;;;4592:71:85;;;;;;;;;;33497:18:144;;;;4592:71:85;;;;;;;;;-1:-1:-1;;;;;4592:71:85;-1:-1:-1;;;4592:71:85;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:85:o;2118:794:48:-;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:48;;2847:58;;;;-1:-1:-1;;;2847:58:48;;33835:2:144;2847:58:48;;;33817:21:144;33874:2;33854:18;;;33847:30;33913:25;33893:18;;;33886:53;33956:18;;2847:58:48;33633:347:144;2407:149:83;2465:13;2497:52;-1:-1:-1;;;;;2509:22:83;;343:2;1818:437;1893:13;1918:19;1950:10;1954:6;1950:1;:10;:::i;:::-;:14;;1963:1;1950:14;:::i;:::-;1940:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:25:83;;1918:47;;1975:15;:6;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1975:15:83;;;;;;;;;2000;:6;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2000:15:83;;;;;;;;-1:-1:-1;2030:9:83;2042:10;2046:6;2042:1;:10;:::i;:::-;:14;;2055:1;2042:14;:::i;:::-;2030:26;;2025:128;2062:1;2058;:5;2025:128;;;2096:8;2105:5;2113:3;2105:11;2096:21;;;;;;;:::i;:::-;;;;2084:6;2091:1;2084:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2084:33:83;;;;;;;;-1:-1:-1;2141:1:83;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:83;;2162:55;;;;-1:-1:-1;;;2162:55:83;;34328:2:144;2162:55:83;;;34310:21:144;;;34347:18;;;34340:30;34406:34;34386:18;;;34379:62;34458:18;;2162:55:83;34126:356:144;4108:223:80;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:80;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;7851;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:80;;;8113:60;;;;-1:-1:-1;;;8113:60:80;;35388:2:144;8113:60:80;;;35370:21:144;35427:2;35407:18;;;35400:30;35466:31;35446:18;;;35439:59;35515:18;;8113:60:80;35186:353:144;8113:60:80;-1:-1:-1;8208:10:80;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:80;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:332:144;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;-1:-1:-1;;;;;;223:5:144;219:78;212:5;209:89;199:117;;312:1;309;302:12;907:180;966:6;1019:2;1007:9;998:7;994:23;990:32;987:52;;;1035:1;1032;1025:12;987:52;-1:-1:-1;1058:23:144;;907:180;-1:-1:-1;907:180:144:o;1092:154::-;-1:-1:-1;;;;;1171:5:144;1167:54;1160:5;1157:65;1147:93;;1236:1;1233;1226:12;1251:134;1319:20;;1348:31;1319:20;1348:31;:::i;:::-;1251:134;;;:::o;1390:388::-;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1574:9;1561:23;1593:31;1618:5;1593:31;:::i;:::-;1643:5;-1:-1:-1;1700:2:144;1685:18;;1672:32;1713:33;1672:32;1713:33;:::i;:::-;1765:7;1755:17;;;1390:388;;;;;:::o;1783:247::-;1842:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:52;;;1911:1;1908;1901:12;1863:52;1950:9;1937:23;1969:31;1994:5;1969:31;:::i;2220:315::-;2288:6;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2404:9;2391:23;2423:31;2448:5;2423:31;:::i;:::-;2473:5;2525:2;2510:18;;;;2497:32;;-1:-1:-1;;;2220:315:144:o;2771:::-;2839:6;2847;2900:2;2888:9;2879:7;2875:23;2871:32;2868:52;;;2916:1;2913;2906:12;2868:52;2952:9;2939:23;2929:33;;3012:2;3001:9;2997:18;2984:32;3025:31;3050:5;3025:31;:::i;4476:184::-;-1:-1:-1;;;4525:1:144;4518:88;4625:4;4622:1;4615:15;4649:4;4646:1;4639:15;4665:257;4737:4;4731:11;;;4769:17;;4816:18;4801:34;;4837:22;;;4798:62;4795:88;;;4863:18;;:::i;:::-;4899:4;4892:24;4665:257;:::o;4927:255::-;4999:2;4993:9;5041:6;5029:19;;5078:18;5063:34;;5099:22;;;5060:62;5057:88;;;5125:18;;:::i;5187:255::-;5259:2;5253:9;5301:6;5289:19;;5338:18;5323:34;;5359:22;;;5320:62;5317:88;;;5385:18;;:::i;5447:253::-;5519:2;5513:9;5561:4;5549:17;;5596:18;5581:34;;5617:22;;;5578:62;5575:88;;;5643:18;;:::i;5705:275::-;5776:2;5770:9;5841:2;5822:13;;-1:-1:-1;;5818:27:144;5806:40;;5876:18;5861:34;;5897:22;;;5858:62;5855:88;;;5923:18;;:::i;:::-;5959:2;5952:22;5705:275;;-1:-1:-1;5705:275:144:o;5985:187::-;6034:4;6067:18;6059:6;6056:30;6053:56;;;6089:18;;:::i;:::-;-1:-1:-1;6155:2:144;6134:15;-1:-1:-1;;6130:29:144;6161:4;6126:40;;5985:187::o;6177:464::-;6220:5;6273:3;6266:4;6258:6;6254:17;6250:27;6240:55;;6291:1;6288;6281:12;6240:55;6327:6;6314:20;6358:49;6374:32;6403:2;6374:32;:::i;:::-;6358:49;:::i;:::-;6432:2;6423:7;6416:19;6478:3;6471:4;6466:2;6458:6;6454:15;6450:26;6447:35;6444:55;;;6495:1;6492;6485:12;6444:55;6560:2;6553:4;6545:6;6541:17;6534:4;6525:7;6521:18;6508:55;6608:1;6583:16;;;6601:4;6579:27;6572:38;;;;6587:7;6177:464;-1:-1:-1;;;6177:464:144:o;6646:411::-;6701:5;6749:4;6737:9;6732:3;6728:19;6724:30;6721:50;;;6767:1;6764;6757:12;6721:50;6789:22;;:::i;:::-;6780:31;;6847:9;6834:23;6827:5;6820:38;6909:2;6898:9;6894:18;6881:32;6936:18;6928:6;6925:30;6922:50;;;6968:1;6965;6958:12;6922:50;7004:46;7046:3;7037:6;7026:9;7022:22;7004:46;:::i;:::-;6999:2;6992:5;6988:14;6981:70;;6646:411;;;;:::o;7062:118::-;7148:5;7141:13;7134:21;7127:5;7124:32;7114:60;;7170:1;7167;7160:12;7185:128;7250:20;;7279:28;7250:20;7279:28;:::i;7318:1713::-;7412:6;7465:2;7453:9;7444:7;7440:23;7436:32;7433:52;;;7481:1;7478;7471:12;7433:52;7521:9;7508:23;7550:18;7591:2;7583:6;7580:14;7577:34;;;7607:1;7604;7597:12;7577:34;7630:22;;;;7686:6;7668:16;;;7664:29;7661:49;;;7706:1;7703;7696:12;7661:49;7732:22;;:::i;:::-;7777;7796:2;7777:22;:::i;:::-;7770:5;7763:37;7832:31;7859:2;7855;7851:11;7832:31;:::i;:::-;7827:2;7820:5;7816:14;7809:55;7917:2;7913;7909:11;7896:25;7891:2;7884:5;7880:14;7873:49;7975:2;7971;7967:11;7954:25;7949:2;7942:5;7938:14;7931:49;8034:3;8030:2;8026:12;8013:26;8007:3;8000:5;7996:15;7989:51;8073:32;8100:3;8096:2;8092:12;8073:32;:::i;:::-;8067:3;8060:5;8056:15;8049:57;8139:32;8166:3;8162:2;8158:12;8139:32;:::i;:::-;8133:3;8126:5;8122:15;8115:57;8218:3;8214:2;8210:12;8197:26;8248:2;8238:8;8235:16;8232:36;;;8264:1;8261;8254:12;8232:36;8301:54;8347:7;8336:8;8332:2;8328:17;8301:54;:::i;:::-;8295:3;8288:5;8284:15;8277:79;;8375:3;8410:31;8437:2;8433;8429:11;8410:31;:::i;:::-;8394:14;;;8387:55;8461:3;8502:11;;;8489:25;8526:16;;;8523:36;;;8555:1;8552;8545:12;8523:36;8591:45;8628:7;8617:8;8613:2;8609:17;8591:45;:::i;:::-;8586:2;8579:5;8575:14;8568:69;;;8656:3;8691:28;8715:2;8711;8707:11;8691:28;:::i;:::-;8675:14;;;8668:52;8739:3;8780:11;;;8767:25;8804:16;;;8801:36;;;8833:1;8830;8823:12;8801:36;8869:45;8906:7;8895:8;8891:2;8887:17;8869:45;:::i;:::-;8864:2;8857:5;8853:14;8846:69;;;8934:3;8924:13;;8969:31;8996:2;8992;8988:11;8969:31;:::i;:::-;8953:14;;;8946:55;;;;8957:5;7318:1713;-1:-1:-1;;;;7318:1713:144:o;9036:153::-;9114:20;;9163:1;9153:12;;9143:40;;9179:1;9176;9169:12;9194:110;9278:1;9271:5;9268:12;9258:40;;9294:1;9291;9284:12;9309:152;9386:20;;9415:40;9386:20;9415:40;:::i;9466:416::-;9530:5;9578:4;9566:9;9561:3;9557:19;9553:30;9550:50;;;9596:1;9593;9586:12;9550:50;9629:2;9623:9;9671:4;9663:6;9659:17;9742:6;9730:10;9727:22;9706:18;9694:10;9691:34;9688:62;9685:88;;;9753:18;;:::i;:::-;9789:2;9782:22;9852:23;;9837:39;;-1:-1:-1;9822:6:144;9466:416;-1:-1:-1;9466:416:144:o;9887:359::-;9945:5;9993:4;9981:9;9976:3;9972:19;9968:30;9965:50;;;10011:1;10008;10001:12;9965:50;10033:22;;:::i;:::-;10024:31;;10092:9;10079:23;10111:33;10136:7;10111:33;:::i;:::-;10167:7;10160:5;10153:22;;10235:2;10224:9;10220:18;10207:32;10202:2;10195:5;10191:14;10184:56;9887:359;;;;:::o;10251:865::-;10314:5;10362:6;10350:9;10345:3;10341:19;10337:32;10334:52;;;10382:1;10379;10372:12;10334:52;10404:22;;:::i;:::-;10395:31;;10449:29;10468:9;10449:29;:::i;:::-;10442:5;10435:44;10539:2;10528:9;10524:18;10511:32;10506:2;10499:5;10495:14;10488:56;10604:2;10593:9;10589:18;10576:32;10571:2;10564:5;10560:14;10553:56;10669:2;10658:9;10654:18;10641:32;10636:2;10629:5;10625:14;10618:56;10735:3;10724:9;10720:19;10707:33;10701:3;10694:5;10690:15;10683:58;10774:49;10818:3;10807:9;10803:19;10774:49;:::i;:::-;10768:3;10761:5;10757:15;10750:74;10857:48;10900:3;10889:9;10885:19;10857:48;:::i;:::-;10851:3;10844:5;10840:15;10833:73;10939:61;10996:3;10990;10979:9;10975:19;10939:61;:::i;:::-;10933:3;10926:5;10922:15;10915:86;11020:3;11055:54;11105:3;11100:2;11089:9;11085:18;11055:54;:::i;:::-;11039:14;;;11032:78;11043:5;10251:865;-1:-1:-1;;10251:865:144:o;11121:618::-;11259:6;11267;11275;11328:3;11316:9;11307:7;11303:23;11299:33;11296:53;;;11345:1;11342;11335:12;11296:53;11384:9;11371:23;11403:31;11428:5;11403:31;:::i;:::-;11453:5;-1:-1:-1;11477:63:144;11532:7;11527:2;11512:18;;11477:63;:::i;:::-;11467:73;;11591:3;11580:9;11576:19;11563:33;11619:18;11611:6;11608:30;11605:50;;;11651:1;11648;11641:12;11605:50;11674:59;11725:7;11716:6;11705:9;11701:22;11674:59;:::i;:::-;11664:69;;;11121:618;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:144;12270:16;;12263:27;12046:250::o;12301:271::-;12343:3;12381:5;12375:12;12408:6;12403:3;12396:19;12424:76;12493:6;12486:4;12481:3;12477:14;12470:4;12463:5;12459:16;12424:76;:::i;:::-;12554:2;12533:15;-1:-1:-1;;12529:29:144;12520:39;;;;12561:4;12516:50;;12301:271;-1:-1:-1;;12301:271:144:o;12577:220::-;12726:2;12715:9;12708:21;12689:4;12746:45;12787:2;12776:9;12772:18;12764:6;12746:45;:::i;12802:759::-;12949:6;12957;12965;12973;13026:3;13014:9;13005:7;13001:23;12997:33;12994:53;;;13043:1;13040;13033:12;12994:53;13082:9;13069:23;13101:31;13126:5;13101:31;:::i;:::-;13151:5;-1:-1:-1;13208:2:144;13193:18;;13180:32;13221:33;13180:32;13221:33;:::i;:::-;13273:7;-1:-1:-1;13299:63:144;13354:7;13349:2;13334:18;;13299:63;:::i;:::-;13289:73;;13413:3;13402:9;13398:19;13385:33;13441:18;13433:6;13430:30;13427:50;;;13473:1;13470;13463:12;13427:50;13496:59;13547:7;13538:6;13527:9;13523:22;13496:59;:::i;:::-;13486:69;;;12802:759;;;;;;;:::o;14059:184::-;-1:-1:-1;;;14108:1:144;14101:88;14208:4;14205:1;14198:15;14232:4;14229:1;14222:15;14248:168;14321:9;;;14352;;14369:15;;;14363:22;;14349:37;14339:71;;14390:18;;:::i;14421:184::-;-1:-1:-1;;;14470:1:144;14463:88;14570:4;14567:1;14560:15;14594:4;14591:1;14584:15;14610:277;14697:6;14750:2;14738:9;14729:7;14725:23;14721:32;14718:52;;;14766:1;14763;14756:12;14718:52;14798:9;14792:16;14817:40;14851:5;14817:40;:::i;15202:184::-;15272:6;15325:2;15313:9;15304:7;15300:23;15296:32;15293:52;;;15341:1;15338;15331:12;15293:52;-1:-1:-1;15364:16:144;;15202:184;-1:-1:-1;15202:184:144:o;16428:274::-;16468:1;16494;16484:189;;-1:-1:-1;;;16526:1:144;16519:88;16630:4;16627:1;16620:15;16658:4;16655:1;16648:15;16484:189;-1:-1:-1;16687:9:144;;16428:274::o;16707:125::-;16772:9;;;16793:10;;;16790:36;;;16806:18;;:::i;16837:251::-;16907:6;16960:2;16948:9;16939:7;16935:23;16931:32;16928:52;;;16976:1;16973;16966:12;16928:52;17008:9;17002:16;17027:31;17052:5;17027:31;:::i;17849:184::-;-1:-1:-1;;;17898:1:144;17891:88;17998:4;17995:1;17988:15;18022:4;18019:1;18012:15;18038:135;18077:3;18098:17;;;18095:43;;18118:18;;:::i;:::-;-1:-1:-1;18165:1:144;18154:13;;18038:135::o;18178:128::-;18245:9;;;18266:11;;;18263:37;;;18280:18;;:::i;18564:184::-;-1:-1:-1;;;18613:1:144;18606:88;18713:4;18710:1;18703:15;18737:4;18734:1;18727:15;18753:245;18820:6;18873:2;18861:9;18852:7;18848:23;18844:32;18841:52;;;18889:1;18886;18879:12;18841:52;18921:9;18915:16;18940:28;18962:5;18940:28;:::i;19003:1653::-;19095:6;19126:2;19169;19157:9;19148:7;19144:23;19140:32;19137:52;;;19185:1;19182;19175:12;19137:52;19218:9;19212:16;19247:18;19288:2;19280:6;19277:14;19274:34;;;19304:1;19301;19294:12;19274:34;19327:22;;;;19383:4;19365:16;;;19361:27;19358:47;;;19401:1;19398;19391:12;19358:47;19427:22;;:::i;:::-;19478:2;19472:9;19465:5;19458:24;19520:2;19516;19512:11;19506:18;19533:33;19558:7;19533:33;:::i;:::-;19582:14;;;19575:31;19644:2;19636:11;;19630:18;19657:33;19630:18;19657:33;:::i;:::-;19717:2;19706:14;;19699:31;19769:2;19761:11;;19755:18;19785:16;;;19782:36;;;19814:1;19811;19804:12;19782:36;19837:17;;19888:2;19870:16;;;19866:25;19863:45;;;19904:1;19901;19894:12;19863:45;19932:22;;:::i;:::-;19985:2;19979:9;19970:7;19963:26;20028:2;20024;20020:11;20014:18;20057:2;20047:8;20044:16;20041:36;;;20073:1;20070;20063:12;20041:36;20096:17;;;-1:-1:-1;20144:4:144;20136:13;;20132:27;-1:-1:-1;20122:55:144;;20173:1;20170;20163:12;20122:55;20202:2;20196:9;20186:19;;20227:49;20243:32;20272:2;20243:32;:::i;20227:49::-;20299:2;20292:5;20285:17;20339:7;20334:2;20329;20325;20321:11;20317:20;20314:33;20311:53;;;20360:1;20357;20350:12;20311:53;20373:67;20437:2;20432;20425:5;20421:14;20416:2;20412;20408:11;20373:67;:::i;:::-;20456:16;;;20449:31;;;;-1:-1:-1;20507:2:144;20496:14;;20489:31;;;;-1:-1:-1;20567:3:144;20559:12;;;20553:19;20536:15;;;20529:44;20620:3;20612:12;;;20606:19;20589:15;;;20582:44;20500:5;19003:1653;-1:-1:-1;;;19003:1653:144:o;20661:437::-;20740:1;20736:12;;;;20783;;;20804:61;;20858:4;20850:6;20846:17;20836:27;;20804:61;20911:2;20903:6;20900:14;20880:18;20877:38;20874:218;;-1:-1:-1;;;20945:1:144;20938:88;21049:4;21046:1;21039:15;21077:4;21074:1;21067:15;20874:218;;20661:437;;;:::o;21229:545::-;21331:2;21326:3;21323:11;21320:448;;;21367:1;21392:5;21388:2;21381:17;21437:4;21433:2;21423:19;21507:2;21495:10;21491:19;21488:1;21484:27;21478:4;21474:38;21543:4;21531:10;21528:20;21525:47;;;-1:-1:-1;21566:4:144;21525:47;21621:2;21616:3;21612:12;21609:1;21605:20;21599:4;21595:31;21585:41;;21676:82;21694:2;21687:5;21684:13;21676:82;;;21739:17;;;21720:1;21709:13;21676:82;;;21680:3;;;21229:545;;;:::o;21950:1352::-;22076:3;22070:10;22103:18;22095:6;22092:30;22089:56;;;22125:18;;:::i;:::-;22154:97;22244:6;22204:38;22236:4;22230:11;22204:38;:::i;:::-;22198:4;22154:97;:::i;:::-;22306:4;;22370:2;22359:14;;22387:1;22382:663;;;;23089:1;23106:6;23103:89;;;-1:-1:-1;23158:19:144;;;23152:26;23103:89;-1:-1:-1;;21907:1:144;21903:11;;;21899:24;21895:29;21885:40;21931:1;21927:11;;;21882:57;23205:81;;22352:944;;22382:663;21176:1;21169:14;;;21213:4;21200:18;;-1:-1:-1;;22418:20:144;;;22536:236;22550:7;22547:1;22544:14;22536:236;;;22639:19;;;22633:26;22618:42;;22731:27;;;;22699:1;22687:14;;;;22566:19;;22536:236;;;22540:3;22800:6;22791:7;22788:19;22785:201;;;22861:19;;;22855:26;-1:-1:-1;;22944:1:144;22940:14;;;22956:3;22936:24;22932:37;22928:42;22913:58;22898:74;;22785:201;-1:-1:-1;;;;;23032:1:144;23016:14;;;23012:22;22999:36;;-1:-1:-1;21950:1352:144:o;23307:1011::-;23402:6;23433:2;23476;23464:9;23455:7;23451:23;23447:32;23444:52;;;23492:1;23489;23482:12;23444:52;23525:9;23519:16;23554:18;23595:2;23587:6;23584:14;23581:34;;;23611:1;23608;23601:12;23581:34;23649:6;23638:9;23634:22;23624:32;;23694:7;23687:4;23683:2;23679:13;23675:27;23665:55;;23716:1;23713;23706:12;23665:55;23745:2;23739:9;23767:2;23763;23760:10;23757:36;;;23773:18;;:::i;:::-;23819:2;23816:1;23812:10;23802:20;;23842:28;23866:2;23862;23858:11;23842:28;:::i;:::-;23904:15;;;23974:11;;;23970:20;;;23935:12;;;;24002:19;;;23999:39;;;24034:1;24031;24024:12;23999:39;24058:11;;;;24078:210;24094:6;24089:3;24086:15;24078:210;;;24167:3;24161:10;24148:23;;24184:31;24209:5;24184:31;:::i;:::-;24228:18;;;24111:12;;;;24266;;;;24078:210;;;24307:5;23307:1011;-1:-1:-1;;;;;;;;23307:1011:144:o;24323:772::-;24373:3;24414:5;24408:12;24443:36;24469:9;24443:36;:::i;:::-;24488:19;;;24526:4;24549:1;24566:18;;;24593:146;;;;24753:1;24748:341;;;;24559:530;;24593:146;-1:-1:-1;;24635:24:144;;24621:12;;;24614:46;24707:14;;24700:22;24697:1;24693:30;24684:40;;24680:49;;;-1:-1:-1;24593:146:144;;24748:341;24779:5;24776:1;24769:16;24826:2;24823:1;24813:16;24851:1;24865:174;24879:6;24876:1;24873:13;24865:174;;;24966:14;;24948:11;;;24944:20;;24937:44;25009:16;;;;24894:10;;24865:174;;;25063:11;;25059:20;;;-1:-1:-1;;24559:530:144;;;;;;24323:772;;;;:::o;25100:252::-;25187:5;25181:12;25176:3;25169:25;25151:3;25240:4;25233:5;25229:16;25223:23;25278:4;25271;25266:3;25262:14;25255:28;25299:47;25340:4;25335:3;25331:14;25317:12;25299:47;:::i;25357:484::-;25410:3;25448:5;25442:12;25475:6;25470:3;25463:19;25501:4;25530:2;25525:3;25521:12;25514:19;;25567:2;25560:5;25556:14;25588:1;25598:218;25612:6;25609:1;25606:13;25598:218;;;25677:13;;-1:-1:-1;;;;;25673:62:144;25661:75;;25756:12;;;;25791:15;;;;25634:1;25627:9;25598:218;;;-1:-1:-1;25832:3:144;;25357:484;-1:-1:-1;;;;;25357:484:144:o;25846:827::-;26206:6;26195:9;26188:25;26249:3;26244:2;26233:9;26229:18;26222:31;26169:4;26276:54;26325:3;26314:9;26310:19;26302:6;26276:54;:::i;:::-;26378:9;26370:6;26366:22;26361:2;26350:9;26346:18;26339:50;26412:42;26447:6;26439;26412:42;:::i;:::-;26398:56;;-1:-1:-1;;;;;26494:6:144;26490:55;26485:2;26474:9;26470:18;26463:83;26595:9;26587:6;26583:22;26577:3;26566:9;26562:19;26555:51;26623:44;26660:6;26652;26623:44;:::i;26867:500::-;27121:6;27110:9;27103:25;27164:2;27159;27148:9;27144:18;27137:30;27084:4;27190:53;27239:2;27228:9;27224:18;27216:6;27190:53;:::i;:::-;27291:9;27283:6;27279:22;27274:2;27263:9;27259:18;27252:50;27319:42;27354:6;27346;27319:42;:::i;:::-;27311:50;26867:500;-1:-1:-1;;;;;;26867:500:144:o;27372:142::-;27455:1;27448:5;27445:12;27435:46;;27461:18;;:::i;:::-;27490;;27372:142::o;27820:1140::-;27982:4;28024:3;28013:9;28009:19;28001:27;;-1:-1:-1;;;;;28065:6:144;28059:13;28055:62;28044:9;28037:81;28174:4;28166:6;28162:17;28156:24;28149:4;28138:9;28134:20;28127:54;28237:4;28229:6;28225:17;28219:24;28212:4;28201:9;28197:20;28190:54;28300:4;28292:6;28288:17;28282:24;28275:4;28264:9;28260:20;28253:54;28363:4;28355:6;28351:17;28345:24;28338:4;28327:9;28323:20;28316:54;28417:4;28409:6;28405:17;28399:24;28459:1;28445:12;28442:19;28432:53;;28465:18;;:::i;:::-;28523:12;28516:4;28505:9;28501:20;28494:42;;28585:4;28577:6;28573:17;28567:24;28600:65;28659:4;28648:9;28644:20;28628:14;28600:65;:::i;:::-;;28714:4;28706:6;28702:17;28696:24;28729:73;28796:4;28785:9;28781:20;28765:14;27594:12;27582:25;;27519:90;28729:73;-1:-1:-1;28821:6:144;28864:15;;;28858:22;27695:12;;-1:-1:-1;;;;;27691:61:144;28935:18;;;27679:74;27802:4;27791:16;;27785:23;27769:14;;;27762:47;28889:65;;27820:1140;;;;:::o;28965:1002::-;29390:6;29379:9;29372:25;29353:4;-1:-1:-1;;;;;29506:2:144;29498:6;29494:15;29489:2;29478:9;29474:18;29467:43;29546:3;29541:2;29530:9;29526:18;29519:31;29573:46;29614:3;29603:9;29599:19;29591:6;29573:46;:::i;:::-;29667:2;29659:6;29655:15;29650:2;29639:9;29635:18;29628:43;29708:6;29702:3;29691:9;29687:19;29680:35;29764:9;29756:6;29752:22;29746:3;29735:9;29731:19;29724:51;29798:42;29833:6;29825;29798:42;:::i;:::-;29784:56;;;29889:9;29881:6;29877:22;29871:3;29860:9;29856:19;29849:51;29917:44;29954:6;29946;29917:44;:::i;:::-;29909:52;28965:1002;-1:-1:-1;;;;;;;;;;28965:1002:144:o;29972:636::-;30265:6;30254:9;30247:25;30228:4;-1:-1:-1;;;;;30381:2:144;30373:6;30369:15;30364:2;30353:9;30349:18;30342:43;30433:2;30425:6;30421:15;30416:2;30405:9;30401:18;30394:43;30485:2;30477:6;30473:15;30468:2;30457:9;30453:18;30446:43;;30526:3;30520;30509:9;30505:19;30498:32;30547:55;30597:3;30586:9;30582:19;30574:6;30547:55;:::i;30973:340::-;31150:2;31139:9;31132:21;31113:4;31170:45;31211:2;31200:9;31196:18;31188:6;31170:45;:::i;:::-;31162:53;;-1:-1:-1;;;;;31255:6:144;31251:55;31246:2;31235:9;31231:18;31224:83;30973:340;;;;;:::o;31318:291::-;31495:2;31484:9;31477:21;31458:4;31515:45;31556:2;31545:9;31541:18;31533:6;31515:45;:::i;:::-;31507:53;;31596:6;31591:2;31580:9;31576:18;31569:34;31318:291;;;;;:::o;32152:812::-;32563:25;32558:3;32551:38;32533:3;32618:6;32612:13;32634:75;32702:6;32697:2;32692:3;32688:12;32681:4;32673:6;32669:17;32634:75;:::i;:::-;32773:19;32768:2;32728:16;;;32760:11;;;32753:40;32818:13;;32840:76;32818:13;32902:2;32894:11;;32887:4;32875:17;;32840:76;:::i;:::-;32936:17;32955:2;32932:26;;32152:812;-1:-1:-1;;;;32152:812:144:o;33985:136::-;34024:3;34052:5;34042:39;;34061:18;;:::i;:::-;-1:-1:-1;;;34097:18:144;;33985:136::o;34894:287::-;35023:3;35061:6;35055:13;35077:66;35136:6;35131:3;35124:4;35116:6;35112:17;35077:66;:::i;:::-;35159:16;;;;;34894:287;-1:-1:-1;;34894:287:144:o","linkReferences":{}},"methodIdentifiers":{"COUNCIL_MEMBER_CHANGE()":"a0b21cdf","DEFAULT_ADMIN_ROLE()":"a217fddf","MAX_FEE()":"bc063e1a","NATIVE()":"a0cf0aea","PRECISION_SCALE()":"d7050f07","acceptCouncilSafe()":"b5058c50","activateMemberInStrategy(address,address)":"0d4a8b49","addStrategy(address)":"223e5479","addStrategyByPoolId(uint256)":"82d6a1e7","addressToMemberInfo(address)":"88cfe684","allo()":"d6d8428d","cloneNonce()":"33960459","communityFee()":"8961be6b","communityName()":"c6d572ae","councilSafe()":"6c53db9a","covenantIpfsHash()":"b64e39af","createPool(address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"9a72a86f","createPool(address,address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"c8a593e9","deactivateMemberInStrategy(address,address)":"22bcf999","decreasePower(uint256)":"5ecf71c5","enabledStrategies(address)":"3a871fe1","feeReceiver()":"b3f00674","gardenToken()":"db61d65c","getBasisStakedAmount()":"0331383c","getMemberPowerInStrategy(address,address)":"7817ee4f","getMemberStakedAmount(address)":"2c611c4a","getRoleAdmin(bytes32)":"248a9ca3","getStakeAmountWithFees()":"28c309e9","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increasePower(uint256)":"559de05d","initialize((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"96f0adec","isCouncilMember(address)":"ebd7dc52","isKickEnabled()":"1f787d28","isMember(address)":"a230c524","kickMember(address,address)":"6871eb4d","memberActivatedInStrategies(address,address)":"477a5cc0","memberPowerInStrategy(address,address)":"65e3864c","pendingCouncilSafe()":"68decabb","profileId()":"08386eba","registerStakeAmount()":"78a0b8a9","registry()":"7b103999","registryFactory()":"f86c5f89","removeStrategy(address)":"175188e8","removeStrategyByPoolId(uint256)":"73265c37","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setBasisStakedAmount(uint256)":"31f61bca","setCommunityFee(uint256)":"0d12bbdb","setCouncilSafe(address)":"397e2543","stakeAndRegisterMember()":"3517aa7d","strategiesByMember(address,uint256)":"2b38c69c","strategyTemplate()":"5c94e4d2","supportsInterface(bytes4)":"01ffc9a7","unregisterMember()":"b99b4370"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decreaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_currentPower\",\"type\":\"uint256\"}],\"name\":\"CantDecreaseMoreThanPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DecreaseUnderMinimum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KickNotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewFeeGreaterThanMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PointsDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotNewOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotStrategy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotGardenOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInCouncil\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueCannotBeZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"name\":\"AlloSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"BasisStakedAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newFee\",\"type\":\"uint256\"}],\"name\":\"CommunityFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safeOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newSafeOwner\",\"type\":\"address\"}],\"name\":\"CouncilSafeChangeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"CouncilSafeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"MemberActivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"MemberDeactivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberKicked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_unstakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_stakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"RegistryInitialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNCIL_MEMBER_CHANGE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"activateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newStrategy\",\"type\":\"address\"}],\"name\":\"addStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"addStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"addressToMemberInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo\",\"outputs\":[{\"internalType\":\"contract FAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloneNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilSafe\",\"outputs\":[{\"internalType\":\"contract ISafe\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"covenantIpfsHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"deactivateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountUnstaked\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"enabledStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardenToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasisStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"getMemberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"getMemberStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStakeAmountWithFees\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isCouncilMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isKickEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isMember\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"}],\"name\":\"kickMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"memberActivatedInStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActivated\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"memberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingCouncilSafe\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"removeStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"setBasisStakedAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newCommunityFee\",\"type\":\"uint256\"}],\"name\":\"setCommunityFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"setCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesByMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategiesAddresses\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyTemplate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"}},\"kind\":\"dev\",\"methods\":{\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"RegistryCommunity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_decreaseAmount","type":"uint256"},{"internalType":"uint256","name":"_currentPower","type":"uint256"}],"type":"error","name":"CantDecreaseMoreThanPower"},{"inputs":[],"type":"error","name":"DecreaseUnderMinimum"},{"inputs":[],"type":"error","name":"KickNotEnabled"},{"inputs":[],"type":"error","name":"NewFeeGreaterThanMax"},{"inputs":[],"type":"error","name":"PointsDeactivated"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[],"type":"error","name":"SenderNotNewOwner"},{"inputs":[],"type":"error","name":"SenderNotStrategy"},{"inputs":[],"type":"error","name":"StrategyDisabled"},{"inputs":[],"type":"error","name":"StrategyExists"},{"inputs":[],"type":"error","name":"UserAlreadyActivated"},{"inputs":[],"type":"error","name":"UserAlreadyDeactivated"},{"inputs":[],"type":"error","name":"UserAlreadyRegistered"},{"inputs":[],"type":"error","name":"UserNotGardenOwner"},{"inputs":[],"type":"error","name":"UserNotInCouncil"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ValueCannotBeZero"},{"inputs":[{"internalType":"address","name":"_allo","type":"address","indexed":false}],"type":"event","name":"AlloSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256","indexed":false}],"type":"event","name":"BasisStakedAmountSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256","indexed":false}],"type":"event","name":"CommunityFeeUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_safeOwner","type":"address","indexed":false},{"internalType":"address","name":"_newSafeOwner","type":"address","indexed":false}],"type":"event","name":"CouncilSafeChangeStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"_safe","type":"address","indexed":false}],"type":"event","name":"CouncilSafeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"uint256","name":"_pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"MemberActivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"MemberDeactivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_transferAddress","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberKicked","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_unstakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_stakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountStaked","type":"uint256","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32","indexed":false},{"internalType":"string","name":"_communityName","type":"string","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"RegistryInitialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNCIL_MEMBER_CHANGE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptCouncilSafe"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"activateMemberInStrategy"},{"inputs":[{"internalType":"address","name":"_newStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addStrategyByPoolId"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"addressToMemberInfo","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"bool","name":"isRegistered","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allo","outputs":[{"internalType":"contract FAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"cloneNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"councilSafe","outputs":[{"internalType":"contract ISafe","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"covenantIpfsHash","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivateMemberInStrategy"},{"inputs":[{"internalType":"uint256","name":"_amountUnstaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower"},{"inputs":[{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"enabledStrategies","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardenToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasisStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberPowerInStrategy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeAmountWithFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_amountStaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower"},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isCouncilMember","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isKickEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMember","outputs":[{"internalType":"bool","name":"_isMember","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_transferAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"kickMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"memberActivatedInStrategies","outputs":[{"internalType":"bool","name":"isActivated","type":"bool"}]},{"inputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"memberPowerInStrategy","outputs":[{"internalType":"uint256","name":"power","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingCouncilSafe","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registerStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategyByPoolId"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBasisStakedAmount"},{"inputs":[{"internalType":"uint256","name":"_newCommunityFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityFee"},{"inputs":[{"internalType":"address payable","name":"_safe","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCouncilSafe"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stakeAndRegisterMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"strategiesByMember","outputs":[{"internalType":"address","name":"strategiesAddresses","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategyTemplate","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"}],"devdoc":{"kind":"dev","methods":{"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"renounceRole(bytes32,address)":{"details":"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."},"revokeRole(bytes32,address)":{"details":"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"RegistryCommunity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":56272,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":55234,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"_roles","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_struct(RoleData)55229_storage)"},{"astId":76348,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"isKickEnabled","offset":0,"slot":"2","type":"t_bool"},{"astId":76350,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registerStakeAmount","offset":0,"slot":"3","type":"t_uint256"},{"astId":76352,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"communityFee","offset":0,"slot":"4","type":"t_uint256"},{"astId":76354,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"profileId","offset":0,"slot":"5","type":"t_bytes32"},{"astId":76356,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"feeReceiver","offset":0,"slot":"6","type":"t_address"},{"astId":76358,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registryFactory","offset":0,"slot":"7","type":"t_address"},{"astId":76360,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"strategyTemplate","offset":0,"slot":"8","type":"t_address"},{"astId":76362,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"cloneNonce","offset":0,"slot":"9","type":"t_uint256"},{"astId":76364,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"pendingCouncilSafe","offset":0,"slot":"10","type":"t_address_payable"},{"astId":76367,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registry","offset":0,"slot":"11","type":"t_contract(IRegistry)2802"},{"astId":76370,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"gardenToken","offset":0,"slot":"12","type":"t_contract(IERC20)57117"},{"astId":76373,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"councilSafe","offset":0,"slot":"13","type":"t_contract(ISafe)75799"},{"astId":76376,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"allo","offset":0,"slot":"14","type":"t_contract(FAllo)76053"},{"astId":76378,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"communityName","offset":0,"slot":"15","type":"t_string_storage"},{"astId":76380,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"covenantIpfsHash","offset":0,"slot":"16","type":"t_string_storage"},{"astId":76384,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"enabledStrategies","offset":0,"slot":"17","type":"t_mapping(t_address,t_bool)"},{"astId":76390,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"memberPowerInStrategy","offset":0,"slot":"18","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":76395,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"addressToMemberInfo","offset":0,"slot":"19","type":"t_mapping(t_address,t_struct(Member)76313_storage)"},{"astId":76400,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"strategiesByMember","offset":0,"slot":"20","type":"t_mapping(t_address,t_array(t_address)dyn_storage)"},{"astId":76406,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"memberActivatedInStrategies","offset":0,"slot":"21","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":76409,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"initialMembers","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(FAllo)76053":{"encoding":"inplace","label":"contract FAllo","numberOfBytes":"20"},"t_contract(IERC20)57117":{"encoding":"inplace","label":"contract IERC20","numberOfBytes":"20"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(ISafe)75799":{"encoding":"inplace","label":"contract ISafe","numberOfBytes":"20"},"t_mapping(t_address,t_array(t_address)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address[])","numberOfBytes":"32","value":"t_array(t_address)dyn_storage"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Member)76313_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryCommunity.Member)","numberOfBytes":"32","value":"t_struct(Member)76313_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)55229_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)55229_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Member)76313_storage":{"encoding":"inplace","label":"struct RegistryCommunity.Member","numberOfBytes":"96","members":[{"astId":76308,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"member","offset":0,"slot":"0","type":"t_address"},{"astId":76310,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"stakedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":76312,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"isRegistered","offset":0,"slot":"2","type":"t_bool"}]},"t_struct(RoleData)55229_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","numberOfBytes":"64","members":[{"astId":55226,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":55228,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","id":77914,"exportedSymbols":{"AccessControl":[55525],"CVStrategy":[75790],"Clone":[3002],"ERC165Checker":[58516],"FAllo":[76053],"IAllo":[2610],"IERC20":[57117],"IPointStrategy":[73022],"IRegistry":[2802],"ISafe":[75799],"Metadata":[3098],"ReentrancyGuard":[56326],"RegistryCommunity":[77913],"RegistryFactory":[78149],"SafeERC20":[57554],"StrategyStruct":[73113],"console":[29766]},"nodeType":"SourceUnit","src":"42:23113:131","nodes":[{"id":75992,"nodeType":"PragmaDirective","src":"42:24:131","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75994,"nodeType":"ImportDirective","src":"68:70:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":57118,"symbolAliases":[{"foreign":{"id":75993,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57117,"src":"76:6:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75996,"nodeType":"ImportDirective","src":"139:79:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":55526,"symbolAliases":[{"foreign":{"id":75995,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55525,"src":"147:13:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75998,"nodeType":"ImportDirective","src":"219:82:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":57555,"symbolAliases":[{"foreign":{"id":75997,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57554,"src":"227:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76000,"nodeType":"ImportDirective","src":"302:85:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":56327,"symbolAliases":[{"foreign":{"id":75999,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56326,"src":"310:15:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76003,"nodeType":"ImportDirective","src":"518:84:131","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":76001,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"526:9:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":76002,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"537:8:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76005,"nodeType":"ImportDirective","src":"603:66:131","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":76004,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"611:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76007,"nodeType":"ImportDirective","src":"670:54:131","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":78150,"symbolAliases":[{"foreign":{"id":76006,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"678:15:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76009,"nodeType":"ImportDirective","src":"725:34:131","nodes":[],"absolutePath":"pkg/contracts/src/ISafe.sol","file":"./ISafe.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":75800,"symbolAliases":[{"foreign":{"id":76008,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"733:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76010,"nodeType":"ImportDirective","src":"819:31:131","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":29767,"symbolAliases":[],"unitAlias":""},{"id":76012,"nodeType":"ImportDirective","src":"851:92:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":58517,"symbolAliases":[{"foreign":{"id":76011,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58516,"src":"859:13:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76016,"nodeType":"ImportDirective","src":"945:76:131","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":75791,"symbolAliases":[{"foreign":{"id":76013,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"953:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":76014,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75790,"src":"969:10:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":76015,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"981:14:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76018,"nodeType":"ImportDirective","src":"1023:65:131","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":77914,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":76017,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"1031:5:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":76053,"nodeType":"ContractDefinition","src":"1161:467:131","nodes":[{"id":76039,"nodeType":"FunctionDefinition","src":"1183:301:131","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"1192:28:131","parameters":{"id":76035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76020,"mutability":"mutable","name":"_profileId","nameLocation":"1238:10:131","nodeType":"VariableDeclaration","scope":76039,"src":"1230:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1230:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76022,"mutability":"mutable","name":"_strategy","nameLocation":"1266:9:131","nodeType":"VariableDeclaration","scope":76039,"src":"1258:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76021,"name":"address","nodeType":"ElementaryTypeName","src":"1258:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76024,"mutability":"mutable","name":"_initStrategyData","nameLocation":"1298:17:131","nodeType":"VariableDeclaration","scope":76039,"src":"1285:30:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":76023,"name":"bytes","nodeType":"ElementaryTypeName","src":"1285:5:131","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":76026,"mutability":"mutable","name":"_token","nameLocation":"1333:6:131","nodeType":"VariableDeclaration","scope":76039,"src":"1325:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76025,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76028,"mutability":"mutable","name":"_amount","nameLocation":"1357:7:131","nodeType":"VariableDeclaration","scope":76039,"src":"1349:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76027,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76031,"mutability":"mutable","name":"_metadata","nameLocation":"1390:9:131","nodeType":"VariableDeclaration","scope":76039,"src":"1374:25:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76030,"nodeType":"UserDefinedTypeName","pathNode":{"id":76029,"name":"Metadata","nameLocations":["1374:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1374:8:131"},"referencedDeclaration":3098,"src":"1374:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76034,"mutability":"mutable","name":"_managers","nameLocation":"1426:9:131","nodeType":"VariableDeclaration","scope":76039,"src":"1409:26:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76032,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76033,"nodeType":"ArrayTypeName","src":"1409:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1220:221:131"},"returnParameters":{"id":76038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76037,"mutability":"mutable","name":"poolId","nameLocation":"1476:6:131","nodeType":"VariableDeclaration","scope":76039,"src":"1468:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76036,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1467:16:131"},"scope":76053,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":76044,"nodeType":"FunctionDefinition","src":"1490:55:131","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1499:11:131","parameters":{"id":76040,"nodeType":"ParameterList","parameters":[],"src":"1510:2:131"},"returnParameters":{"id":76043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76042,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76044,"src":"1536:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76041,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:9:131"},"scope":76053,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":76052,"nodeType":"FunctionDefinition","src":"1550:76:131","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"1559:7:131","parameters":{"id":76047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76046,"mutability":"mutable","name":"_poolId","nameLocation":"1575:7:131","nodeType":"VariableDeclaration","scope":76052,"src":"1567:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76045,"name":"uint256","nodeType":"ElementaryTypeName","src":"1567:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1566:17:131"},"returnParameters":{"id":76051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76050,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":76052,"src":"1607:17:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":76049,"nodeType":"UserDefinedTypeName","pathNode":{"id":76048,"name":"IAllo.Pool","nameLocations":["1607:5:131","1613:4:131"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"1607:10:131"},"referencedDeclaration":2319,"src":"1607:10:131","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"1606:19:131"},"scope":76053,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[76053],"name":"FAllo","nameLocation":"1171:5:131","scope":77914,"usedErrors":[]},{"id":77913,"nodeType":"ContractDefinition","src":"1630:21524:131","nodes":[{"id":76060,"nodeType":"UsingForDirective","src":"1697:32:131","nodes":[],"global":false,"libraryName":{"id":76058,"name":"ERC165Checker","nameLocations":["1703:13:131"],"nodeType":"IdentifierPath","referencedDeclaration":58516,"src":"1703:13:131"},"typeName":{"id":76059,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":76064,"nodeType":"UsingForDirective","src":"1734:27:131","nodes":[],"global":false,"libraryName":{"id":76061,"name":"SafeERC20","nameLocations":["1740:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":57554,"src":"1740:9:131"},"typeName":{"id":76063,"nodeType":"UserDefinedTypeName","pathNode":{"id":76062,"name":"IERC20","nameLocations":["1754:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"1754:6:131"},"referencedDeclaration":57117,"src":"1754:6:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}},{"id":76067,"nodeType":"UsingForDirective","src":"1766:24:131","nodes":[],"global":false,"libraryName":{"id":76065,"name":"Clone","nameLocations":["1772:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1772:5:131"},"typeName":{"id":76066,"name":"address","nodeType":"ElementaryTypeName","src":"1782:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":76070,"nodeType":"VariableDeclaration","src":"1796:75:131","nodes":[],"constant":true,"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1820:6:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76068,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":76069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1829:42:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":76075,"nodeType":"VariableDeclaration","src":"2042:82:131","nodes":[],"constant":true,"functionSelector":"a0b21cdf","mutability":"constant","name":"COUNCIL_MEMBER_CHANGE","nameLocation":"2066:21:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76071,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2042:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d4245525f4348414e4745","id":76073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2100:23:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""},"value":"COUNCIL_MEMBER_CHANGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""}],"id":76072,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2090:9:131","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":76074,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76079,"nodeType":"EventDefinition","src":"2296:29:131","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"2302:7:131","parameters":{"id":76078,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76077,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"2318:5:131","nodeType":"VariableDeclaration","scope":76079,"src":"2310:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76076,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2309:15:131"}},{"id":76083,"nodeType":"EventDefinition","src":"2330:36:131","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"2336:14:131","parameters":{"id":76082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76081,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"2359:5:131","nodeType":"VariableDeclaration","scope":76083,"src":"2351:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76080,"name":"address","nodeType":"ElementaryTypeName","src":"2351:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2350:15:131"}},{"id":76089,"nodeType":"EventDefinition","src":"2371:74:131","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"2377:24:131","parameters":{"id":76088,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76085,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"2410:10:131","nodeType":"VariableDeclaration","scope":76089,"src":"2402:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76084,"name":"address","nodeType":"ElementaryTypeName","src":"2402:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76087,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"2430:13:131","nodeType":"VariableDeclaration","scope":76089,"src":"2422:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76086,"name":"address","nodeType":"ElementaryTypeName","src":"2422:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2401:43:131"}},{"id":76095,"nodeType":"EventDefinition","src":"2450:63:131","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"2456:16:131","parameters":{"id":76094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76091,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2481:7:131","nodeType":"VariableDeclaration","scope":76095,"src":"2473:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76090,"name":"address","nodeType":"ElementaryTypeName","src":"2473:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76093,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"2498:13:131","nodeType":"VariableDeclaration","scope":76095,"src":"2490:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76092,"name":"uint256","nodeType":"ElementaryTypeName","src":"2490:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2472:40:131"}},{"id":76101,"nodeType":"EventDefinition","src":"2518:67:131","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"2524:18:131","parameters":{"id":76100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76097,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2551:7:131","nodeType":"VariableDeclaration","scope":76101,"src":"2543:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76096,"name":"address","nodeType":"ElementaryTypeName","src":"2543:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76099,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2568:15:131","nodeType":"VariableDeclaration","scope":76101,"src":"2560:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76098,"name":"uint256","nodeType":"ElementaryTypeName","src":"2560:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2542:42:131"}},{"id":76109,"nodeType":"EventDefinition","src":"2590:87:131","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"2596:12:131","parameters":{"id":76108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76103,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2617:7:131","nodeType":"VariableDeclaration","scope":76109,"src":"2609:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76102,"name":"address","nodeType":"ElementaryTypeName","src":"2609:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76105,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"2634:16:131","nodeType":"VariableDeclaration","scope":76109,"src":"2626:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76104,"name":"address","nodeType":"ElementaryTypeName","src":"2626:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76107,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2660:15:131","nodeType":"VariableDeclaration","scope":76109,"src":"2652:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76106,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2608:68:131"}},{"id":76113,"nodeType":"EventDefinition","src":"2682:43:131","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"2688:19:131","parameters":{"id":76112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76111,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"2716:7:131","nodeType":"VariableDeclaration","scope":76113,"src":"2708:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76110,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2707:17:131"}},{"id":76122,"nodeType":"EventDefinition","src":"2730:89:131","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"2736:19:131","parameters":{"id":76121,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76115,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"2764:10:131","nodeType":"VariableDeclaration","scope":76122,"src":"2756:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76114,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2756:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":76117,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"2783:14:131","nodeType":"VariableDeclaration","scope":76122,"src":"2776:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":76116,"name":"string","nodeType":"ElementaryTypeName","src":"2776:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76120,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"2808:9:131","nodeType":"VariableDeclaration","scope":76122,"src":"2799:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76119,"nodeType":"UserDefinedTypeName","pathNode":{"id":76118,"name":"Metadata","nameLocations":["2799:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"2799:8:131"},"referencedDeclaration":3098,"src":"2799:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"2755:63:131"}},{"id":76126,"nodeType":"EventDefinition","src":"2824:39:131","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"2830:13:131","parameters":{"id":76125,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76124,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2852:9:131","nodeType":"VariableDeclaration","scope":76126,"src":"2844:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76123,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2843:19:131"}},{"id":76130,"nodeType":"EventDefinition","src":"2868:41:131","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"2874:15:131","parameters":{"id":76129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76128,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2898:9:131","nodeType":"VariableDeclaration","scope":76130,"src":"2890:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76127,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2889:19:131"}},{"id":76138,"nodeType":"EventDefinition","src":"2914:93:131","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"2920:23:131","parameters":{"id":76137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76132,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2952:7:131","nodeType":"VariableDeclaration","scope":76138,"src":"2944:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76131,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76134,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2969:9:131","nodeType":"VariableDeclaration","scope":76138,"src":"2961:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76133,"name":"address","nodeType":"ElementaryTypeName","src":"2961:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76136,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"2988:17:131","nodeType":"VariableDeclaration","scope":76138,"src":"2980:25:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76135,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2943:63:131"}},{"id":76144,"nodeType":"EventDefinition","src":"3012:68:131","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"3018:25:131","parameters":{"id":76143,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76140,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3052:7:131","nodeType":"VariableDeclaration","scope":76144,"src":"3044:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76139,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76142,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3069:9:131","nodeType":"VariableDeclaration","scope":76144,"src":"3061:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76141,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3043:36:131"}},{"id":76148,"nodeType":"EventDefinition","src":"3085:47:131","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"3091:20:131","parameters":{"id":76147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76146,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"3120:10:131","nodeType":"VariableDeclaration","scope":76148,"src":"3112:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76145,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3111:20:131"}},{"id":76154,"nodeType":"EventDefinition","src":"3137:67:131","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"3143:20:131","parameters":{"id":76153,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76150,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3172:7:131","nodeType":"VariableDeclaration","scope":76154,"src":"3164:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76149,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76152,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"3189:13:131","nodeType":"VariableDeclaration","scope":76154,"src":"3181:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3181:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3163:40:131"}},{"id":76160,"nodeType":"EventDefinition","src":"3209:69:131","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"3215:20:131","parameters":{"id":76159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76156,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3244:7:131","nodeType":"VariableDeclaration","scope":76160,"src":"3236:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76155,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76158,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"3261:15:131","nodeType":"VariableDeclaration","scope":76160,"src":"3253:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76157,"name":"uint256","nodeType":"ElementaryTypeName","src":"3253:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3235:42:131"}},{"id":76173,"nodeType":"EventDefinition","src":"3283:110:131","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"3289:11:131","parameters":{"id":76172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76162,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"3309:7:131","nodeType":"VariableDeclaration","scope":76173,"src":"3301:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76161,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76164,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3326:9:131","nodeType":"VariableDeclaration","scope":76173,"src":"3318:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76163,"name":"address","nodeType":"ElementaryTypeName","src":"3318:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76166,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"3345:10:131","nodeType":"VariableDeclaration","scope":76173,"src":"3337:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76165,"name":"address","nodeType":"ElementaryTypeName","src":"3337:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76168,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"3365:6:131","nodeType":"VariableDeclaration","scope":76173,"src":"3357:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76167,"name":"address","nodeType":"ElementaryTypeName","src":"3357:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76171,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"3382:9:131","nodeType":"VariableDeclaration","scope":76173,"src":"3373:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76170,"nodeType":"UserDefinedTypeName","pathNode":{"id":76169,"name":"Metadata","nameLocations":["3373:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"3373:8:131"},"referencedDeclaration":3098,"src":"3373:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"3300:92:131"}},{"id":76188,"nodeType":"FunctionDefinition","src":"3564:155:131","nodes":[],"body":{"id":76187,"nodeType":"Block","src":"3604:115:131","nodes":[],"statements":[{"condition":{"id":76181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3618:43:131","subExpression":{"arguments":[{"id":76177,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"3627:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76178,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3650:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3654:6:131","memberName":"sender","nodeType":"MemberAccess","src":"3650:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76176,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55289,"src":"3619:7:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":76180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3619:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76186,"nodeType":"IfStatement","src":"3614:99:131","trueBody":{"id":76185,"nodeType":"Block","src":"3663:50:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76182,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76272,"src":"3684:16:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3684:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76184,"nodeType":"RevertStatement","src":"3677:25:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"3573:15:131","parameters":{"id":76174,"nodeType":"ParameterList","parameters":[],"src":"3588:2:131"},"returnParameters":{"id":76175,"nodeType":"ParameterList","parameters":[],"src":"3604:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76202,"nodeType":"FunctionDefinition","src":"3725:143:131","nodes":[],"body":{"id":76201,"nodeType":"Block","src":"3774:94:131","nodes":[],"statements":[{"condition":{"id":76195,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3788:21:131","subExpression":{"arguments":[{"expression":{"id":76192,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3798:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:131","memberName":"sender","nodeType":"MemberAccess","src":"3798:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76191,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"3789:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":76194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76200,"nodeType":"IfStatement","src":"3784:78:131","trueBody":{"id":76199,"nodeType":"Block","src":"3811:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76196,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"3832:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3832:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76198,"nodeType":"RevertStatement","src":"3825:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"3734:24:131","parameters":{"id":76189,"nodeType":"ParameterList","parameters":[],"src":"3758:2:131"},"returnParameters":{"id":76190,"nodeType":"ParameterList","parameters":[],"src":"3774:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76217,"nodeType":"FunctionDefinition","src":"3874:156:131","nodes":[],"body":{"id":76216,"nodeType":"Block","src":"3939:91:131","nodes":[],"statements":[{"condition":{"id":76210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3953:18:131","subExpression":{"arguments":[{"id":76208,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76204,"src":"3963:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76207,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"3954:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":76209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76215,"nodeType":"IfStatement","src":"3949:75:131","trueBody":{"id":76214,"nodeType":"Block","src":"3973:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76211,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"3994:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"RevertStatement","src":"3987:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"3883:25:131","parameters":{"id":76205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76204,"mutability":"mutable","name":"_sender","nameLocation":"3917:7:131","nodeType":"VariableDeclaration","scope":76217,"src":"3909:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76203,"name":"address","nodeType":"ElementaryTypeName","src":"3909:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3908:17:131"},"returnParameters":{"id":76206,"nodeType":"ParameterList","parameters":[],"src":"3939:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76232,"nodeType":"FunctionDefinition","src":"4036:162:131","nodes":[],"body":{"id":76231,"nodeType":"Block","src":"4097:101:131","nodes":[],"statements":[{"condition":{"id":76225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4111:29:131","subExpression":{"baseExpression":{"id":76222,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"4112:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76224,"indexExpression":{"id":76223,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76219,"src":"4130:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4112:28:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76230,"nodeType":"IfStatement","src":"4107:85:131","trueBody":{"id":76229,"nodeType":"Block","src":"4142:50:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76226,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76286,"src":"4163:16:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76228,"nodeType":"RevertStatement","src":"4156:25:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"4045:19:131","parameters":{"id":76220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76219,"mutability":"mutable","name":"_strategy","nameLocation":"4073:9:131","nodeType":"VariableDeclaration","scope":76232,"src":"4065:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76218,"name":"address","nodeType":"ElementaryTypeName","src":"4065:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4064:19:131"},"returnParameters":{"id":76221,"nodeType":"ParameterList","parameters":[],"src":"4097:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76248,"nodeType":"FunctionDefinition","src":"4204:171:131","nodes":[],"body":{"id":76247,"nodeType":"Block","src":"4282:93:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76239,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76234,"src":"4296:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76240,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76236,"src":"4307:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4296:20:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76246,"nodeType":"IfStatement","src":"4292:77:131","trueBody":{"id":76245,"nodeType":"Block","src":"4318:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76242,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76290,"src":"4339:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76244,"nodeType":"RevertStatement","src":"4332:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"4213:19:131","parameters":{"id":76237,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76234,"mutability":"mutable","name":"_sender","nameLocation":"4241:7:131","nodeType":"VariableDeclaration","scope":76248,"src":"4233:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76233,"name":"address","nodeType":"ElementaryTypeName","src":"4233:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76236,"mutability":"mutable","name":"_strategy","nameLocation":"4258:9:131","nodeType":"VariableDeclaration","scope":76248,"src":"4250:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76235,"name":"address","nodeType":"ElementaryTypeName","src":"4250:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4232:36:131"},"returnParameters":{"id":76238,"nodeType":"ParameterList","parameters":[],"src":"4282:0:131"},"scope":77913,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76266,"nodeType":"FunctionDefinition","src":"4381:189:131","nodes":[],"body":{"id":76265,"nodeType":"Block","src":"4446:124:131","nodes":[],"statements":[{"condition":{"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4460:51:131","subExpression":{"baseExpression":{"baseExpression":{"id":76253,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"4461:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76256,"indexExpression":{"expression":{"id":76254,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4489:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4493:6:131","memberName":"sender","nodeType":"MemberAccess","src":"4489:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:39:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76258,"indexExpression":{"id":76257,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76250,"src":"4501:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:50:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76264,"nodeType":"IfStatement","src":"4456:108:131","trueBody":{"id":76263,"nodeType":"Block","src":"4513:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76260,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76298,"src":"4534:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4534:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76262,"nodeType":"RevertStatement","src":"4527:26:131"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"4390:23:131","parameters":{"id":76251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76250,"mutability":"mutable","name":"_strategy","nameLocation":"4422:9:131","nodeType":"VariableDeclaration","scope":76266,"src":"4414:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76249,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:19:131"},"returnParameters":{"id":76252,"nodeType":"ParameterList","parameters":[],"src":"4446:0:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76268,"nodeType":"ErrorDefinition","src":"4742:28:131","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"4748:19:131","parameters":{"id":76267,"nodeType":"ParameterList","parameters":[],"src":"4767:2:131"}},{"id":76270,"nodeType":"ErrorDefinition","src":"4775:29:131","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"4781:20:131","parameters":{"id":76269,"nodeType":"ParameterList","parameters":[],"src":"4801:2:131"}},{"id":76272,"nodeType":"ErrorDefinition","src":"4809:25:131","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"4815:16:131","parameters":{"id":76271,"nodeType":"ParameterList","parameters":[],"src":"4831:2:131"}},{"id":76274,"nodeType":"ErrorDefinition","src":"4839:26:131","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"4845:17:131","parameters":{"id":76273,"nodeType":"ParameterList","parameters":[],"src":"4862:2:131"}},{"id":76276,"nodeType":"ErrorDefinition","src":"4870:30:131","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"4876:21:131","parameters":{"id":76275,"nodeType":"ParameterList","parameters":[],"src":"4897:2:131"}},{"id":76278,"nodeType":"ErrorDefinition","src":"4905:27:131","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"4911:18:131","parameters":{"id":76277,"nodeType":"ParameterList","parameters":[],"src":"4929:2:131"}},{"id":76280,"nodeType":"ErrorDefinition","src":"4937:29:131","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"4943:20:131","parameters":{"id":76279,"nodeType":"ParameterList","parameters":[],"src":"4963:2:131"}},{"id":76282,"nodeType":"ErrorDefinition","src":"4971:31:131","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"4977:22:131","parameters":{"id":76281,"nodeType":"ParameterList","parameters":[],"src":"4999:2:131"}},{"id":76284,"nodeType":"ErrorDefinition","src":"5007:23:131","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"5013:14:131","parameters":{"id":76283,"nodeType":"ParameterList","parameters":[],"src":"5027:2:131"}},{"id":76286,"nodeType":"ErrorDefinition","src":"5035:25:131","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"5041:16:131","parameters":{"id":76285,"nodeType":"ParameterList","parameters":[],"src":"5057:2:131"}},{"id":76288,"nodeType":"ErrorDefinition","src":"5065:26:131","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"5071:17:131","parameters":{"id":76287,"nodeType":"ParameterList","parameters":[],"src":"5088:2:131"}},{"id":76290,"nodeType":"ErrorDefinition","src":"5096:26:131","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"5102:17:131","parameters":{"id":76289,"nodeType":"ParameterList","parameters":[],"src":"5119:2:131"}},{"id":76292,"nodeType":"ErrorDefinition","src":"5127:26:131","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"5133:17:131","parameters":{"id":76291,"nodeType":"ParameterList","parameters":[],"src":"5150:2:131"}},{"id":76294,"nodeType":"ErrorDefinition","src":"5158:29:131","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"5164:20:131","parameters":{"id":76293,"nodeType":"ParameterList","parameters":[],"src":"5184:2:131"}},{"id":76296,"nodeType":"ErrorDefinition","src":"5192:23:131","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"5198:14:131","parameters":{"id":76295,"nodeType":"ParameterList","parameters":[],"src":"5212:2:131"}},{"id":76298,"nodeType":"ErrorDefinition","src":"5220:26:131","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"5226:17:131","parameters":{"id":76297,"nodeType":"ParameterList","parameters":[],"src":"5243:2:131"}},{"id":76300,"nodeType":"ErrorDefinition","src":"5251:29:131","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"5257:20:131","parameters":{"id":76299,"nodeType":"ParameterList","parameters":[],"src":"5277:2:131"}},{"id":76306,"nodeType":"ErrorDefinition","src":"5285:80:131","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"5291:25:131","parameters":{"id":76305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76302,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"5325:15:131","nodeType":"VariableDeclaration","scope":76306,"src":"5317:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76301,"name":"uint256","nodeType":"ElementaryTypeName","src":"5317:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76304,"mutability":"mutable","name":"_currentPower","nameLocation":"5350:13:131","nodeType":"VariableDeclaration","scope":76306,"src":"5342:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76303,"name":"uint256","nodeType":"ElementaryTypeName","src":"5342:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5316:48:131"}},{"id":76313,"nodeType":"StructDefinition","src":"5536:102:131","nodes":[],"canonicalName":"RegistryCommunity.Member","members":[{"constant":false,"id":76308,"mutability":"mutable","name":"member","nameLocation":"5568:6:131","nodeType":"VariableDeclaration","scope":76313,"src":"5560:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76307,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76310,"mutability":"mutable","name":"stakedAmount","nameLocation":"5592:12:131","nodeType":"VariableDeclaration","scope":76313,"src":"5584:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76309,"name":"uint256","nodeType":"ElementaryTypeName","src":"5584:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76312,"mutability":"mutable","name":"isRegistered","nameLocation":"5619:12:131","nodeType":"VariableDeclaration","scope":76313,"src":"5614:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76311,"name":"bool","nodeType":"ElementaryTypeName","src":"5614:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"5543:6:131","scope":77913,"visibility":"public"},{"id":76317,"nodeType":"StructDefinition","src":"5644:55:131","nodes":[],"canonicalName":"RegistryCommunity.Strategies","members":[{"constant":false,"id":76316,"mutability":"mutable","name":"strategies","nameLocation":"5682:10:131","nodeType":"VariableDeclaration","scope":76317,"src":"5672:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76314,"name":"address","nodeType":"ElementaryTypeName","src":"5672:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76315,"nodeType":"ArrayTypeName","src":"5672:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"5651:10:131","scope":77913,"visibility":"public"},{"id":76346,"nodeType":"StructDefinition","src":"5705:490:131","nodes":[],"canonicalName":"RegistryCommunity.InitializeParams","members":[{"constant":false,"id":76319,"mutability":"mutable","name":"_allo","nameLocation":"5747:5:131","nodeType":"VariableDeclaration","scope":76346,"src":"5739:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76318,"name":"address","nodeType":"ElementaryTypeName","src":"5739:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76322,"mutability":"mutable","name":"_gardenToken","nameLocation":"5769:12:131","nodeType":"VariableDeclaration","scope":76346,"src":"5762:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":76321,"nodeType":"UserDefinedTypeName","pathNode":{"id":76320,"name":"IERC20","nameLocations":["5762:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"5762:6:131"},"referencedDeclaration":57117,"src":"5762:6:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":76324,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"5799:20:131","nodeType":"VariableDeclaration","scope":76346,"src":"5791:28:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76323,"name":"uint256","nodeType":"ElementaryTypeName","src":"5791:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76326,"mutability":"mutable","name":"_communityFee","nameLocation":"5837:13:131","nodeType":"VariableDeclaration","scope":76346,"src":"5829:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76325,"name":"uint256","nodeType":"ElementaryTypeName","src":"5829:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76328,"mutability":"mutable","name":"_nonce","nameLocation":"5924:6:131","nodeType":"VariableDeclaration","scope":76346,"src":"5916:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76327,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76330,"mutability":"mutable","name":"_registryFactory","nameLocation":"5948:16:131","nodeType":"VariableDeclaration","scope":76346,"src":"5940:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76329,"name":"address","nodeType":"ElementaryTypeName","src":"5940:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76332,"mutability":"mutable","name":"_feeReceiver","nameLocation":"5982:12:131","nodeType":"VariableDeclaration","scope":76346,"src":"5974:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76331,"name":"address","nodeType":"ElementaryTypeName","src":"5974:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76335,"mutability":"mutable","name":"_metadata","nameLocation":"6013:9:131","nodeType":"VariableDeclaration","scope":76346,"src":"6004:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":76334,"nodeType":"UserDefinedTypeName","pathNode":{"id":76333,"name":"Metadata","nameLocations":["6004:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6004:8:131"},"referencedDeclaration":3098,"src":"6004:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76337,"mutability":"mutable","name":"_councilSafe","nameLocation":"6048:12:131","nodeType":"VariableDeclaration","scope":76346,"src":"6032:28:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76336,"name":"address","nodeType":"ElementaryTypeName","src":"6032:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":76339,"mutability":"mutable","name":"_communityName","nameLocation":"6077:14:131","nodeType":"VariableDeclaration","scope":76346,"src":"6070:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76338,"name":"string","nodeType":"ElementaryTypeName","src":"6070:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76341,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"6106:14:131","nodeType":"VariableDeclaration","scope":76346,"src":"6101:19:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76340,"name":"bool","nodeType":"ElementaryTypeName","src":"6101:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":76343,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"6137:16:131","nodeType":"VariableDeclaration","scope":76346,"src":"6130:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76342,"name":"string","nodeType":"ElementaryTypeName","src":"6130:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76345,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"6171:17:131","nodeType":"VariableDeclaration","scope":76346,"src":"6163:25:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76344,"name":"address","nodeType":"ElementaryTypeName","src":"6163:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"5712:16:131","scope":77913,"visibility":"public"},{"id":76348,"nodeType":"VariableDeclaration","src":"6292:25:131","nodes":[],"constant":false,"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"6304:13:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76347,"name":"bool","nodeType":"ElementaryTypeName","src":"6292:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76350,"nodeType":"VariableDeclaration","src":"6461:34:131","nodes":[],"constant":false,"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"6476:19:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76349,"name":"uint256","nodeType":"ElementaryTypeName","src":"6461:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76352,"nodeType":"VariableDeclaration","src":"6501:27:131","nodes":[],"constant":false,"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"6516:12:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76351,"name":"uint256","nodeType":"ElementaryTypeName","src":"6501:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76354,"nodeType":"VariableDeclaration","src":"6534:24:131","nodes":[],"constant":false,"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"6549:9:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76353,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6534:7:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76356,"nodeType":"VariableDeclaration","src":"6609:26:131","nodes":[],"constant":false,"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"6624:11:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76355,"name":"address","nodeType":"ElementaryTypeName","src":"6609:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76358,"nodeType":"VariableDeclaration","src":"6641:30:131","nodes":[],"constant":false,"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"6656:15:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76357,"name":"address","nodeType":"ElementaryTypeName","src":"6641:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76360,"nodeType":"VariableDeclaration","src":"6677:31:131","nodes":[],"constant":false,"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"6692:16:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76359,"name":"address","nodeType":"ElementaryTypeName","src":"6677:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76362,"nodeType":"VariableDeclaration","src":"6714:25:131","nodes":[],"constant":false,"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"6729:10:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76361,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76364,"nodeType":"VariableDeclaration","src":"6745:41:131","nodes":[],"constant":false,"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"6768:18:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76363,"name":"address","nodeType":"ElementaryTypeName","src":"6745:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":76367,"nodeType":"VariableDeclaration","src":"6864:25:131","nodes":[],"constant":false,"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"6881:8:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":76366,"nodeType":"UserDefinedTypeName","pathNode":{"id":76365,"name":"IRegistry","nameLocations":["6864:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6864:9:131"},"referencedDeclaration":2802,"src":"6864:9:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":76370,"nodeType":"VariableDeclaration","src":"6895:25:131","nodes":[],"constant":false,"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"6909:11:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":76369,"nodeType":"UserDefinedTypeName","pathNode":{"id":76368,"name":"IERC20","nameLocations":["6895:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"6895:6:131"},"referencedDeclaration":57117,"src":"6895:6:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"public"},{"id":76373,"nodeType":"VariableDeclaration","src":"6926:24:131","nodes":[],"constant":false,"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"6939:11:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"},"typeName":{"id":76372,"nodeType":"UserDefinedTypeName","pathNode":{"id":76371,"name":"ISafe","nameLocations":["6926:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":75799,"src":"6926:5:131"},"referencedDeclaration":75799,"src":"6926:5:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"visibility":"public"},{"id":76376,"nodeType":"VariableDeclaration","src":"6956:17:131","nodes":[],"constant":false,"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"6969:4:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"},"typeName":{"id":76375,"nodeType":"UserDefinedTypeName","pathNode":{"id":76374,"name":"FAllo","nameLocations":["6956:5:131"],"nodeType":"IdentifierPath","referencedDeclaration":76053,"src":"6956:5:131"},"referencedDeclaration":76053,"src":"6956:5:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"visibility":"public"},{"id":76378,"nodeType":"VariableDeclaration","src":"7037:27:131","nodes":[],"constant":false,"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"7051:13:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76377,"name":"string","nodeType":"ElementaryTypeName","src":"7037:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76380,"nodeType":"VariableDeclaration","src":"7070:30:131","nodes":[],"constant":false,"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"7084:16:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76379,"name":"string","nodeType":"ElementaryTypeName","src":"7070:6:131","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76384,"nodeType":"VariableDeclaration","src":"7164:68:131","nodes":[],"constant":false,"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"7215:17:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":76383,"keyName":"strategy","keyNameLocation":"7180:8:131","keyType":{"id":76381,"name":"address","nodeType":"ElementaryTypeName","src":"7172:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7164:43:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"7197:9:131","valueType":{"id":76382,"name":"bool","nodeType":"ElementaryTypeName","src":"7192:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":76390,"nodeType":"VariableDeclaration","src":"7238:98:131","nodes":[],"constant":false,"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"7315:21:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":76389,"keyName":"strategy","keyNameLocation":"7254:8:131","keyType":{"id":76385,"name":"address","nodeType":"ElementaryTypeName","src":"7246:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7238:69:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76388,"keyName":"member","keyNameLocation":"7282:6:131","keyType":{"id":76386,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7266:40:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"7300:5:131","valueType":{"id":76387,"name":"uint256","nodeType":"ElementaryTypeName","src":"7292:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":76395,"nodeType":"VariableDeclaration","src":"7343:60:131","nodes":[],"constant":false,"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"7384:19:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"typeName":{"id":76394,"keyName":"member","keyNameLocation":"7359:6:131","keyType":{"id":76391,"name":"address","nodeType":"ElementaryTypeName","src":"7351:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7343:33:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76393,"nodeType":"UserDefinedTypeName","pathNode":{"id":76392,"name":"Member","nameLocations":["7369:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"7369:6:131"},"referencedDeclaration":76313,"src":"7369:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}}},"visibility":"public"},{"id":76400,"nodeType":"VariableDeclaration","src":"7409:82:131","nodes":[],"constant":false,"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"7473:18:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":76399,"keyName":"member","keyNameLocation":"7425:6:131","keyType":{"id":76396,"name":"address","nodeType":"ElementaryTypeName","src":"7417:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7409:56:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"7445:19:131","valueType":{"baseType":{"id":76397,"name":"address","nodeType":"ElementaryTypeName","src":"7435:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76398,"nodeType":"ArrayTypeName","src":"7435:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":76406,"nodeType":"VariableDeclaration","src":"7497:107:131","nodes":[],"constant":false,"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"7577:27:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":76405,"keyName":"member","keyNameLocation":"7513:6:131","keyType":{"id":76401,"name":"address","nodeType":"ElementaryTypeName","src":"7505:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7497:72:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76404,"keyName":"strategy","keyNameLocation":"7539:8:131","keyType":{"id":76402,"name":"address","nodeType":"ElementaryTypeName","src":"7531:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7523:45:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"7556:11:131","valueType":{"id":76403,"name":"bool","nodeType":"ElementaryTypeName","src":"7551:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":76409,"nodeType":"VariableDeclaration","src":"7611:24:131","nodes":[],"constant":false,"mutability":"mutable","name":"initialMembers","nameLocation":"7621:14:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":76407,"name":"address","nodeType":"ElementaryTypeName","src":"7611:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76408,"nodeType":"ArrayTypeName","src":"7611:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":76414,"nodeType":"VariableDeclaration","src":"7642:49:131","nodes":[],"constant":true,"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"7666:15:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76410,"name":"uint256","nodeType":"ElementaryTypeName","src":"7642:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":76413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7684:2:131","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":76412,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7690:1:131","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7684:7:131","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":76419,"nodeType":"VariableDeclaration","src":"7697:54:131","nodes":[],"constant":true,"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"7721:7:131","scope":77913,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76415,"name":"uint256","nodeType":"ElementaryTypeName","src":"7697:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76418,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76416,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7731:2:131","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":76417,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"7736:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7731:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76428,"nodeType":"FunctionDefinition","src":"7758:145:131","nodes":[],"body":{"id":76427,"nodeType":"Block","src":"7772:131:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":76423,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"7854:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76424,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55237,"src":"7877:18:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76422,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55461,"src":"7840:13:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":76425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7840:56:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76426,"nodeType":"ExpressionStatement","src":"7840:56:131"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76420,"nodeType":"ParameterList","parameters":[],"src":"7769:2:131"},"returnParameters":{"id":76421,"nodeType":"ParameterList","parameters":[],"src":"7772:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76651,"nodeType":"FunctionDefinition","src":"7909:1945:131","nodes":[],"body":{"id":76650,"nodeType":"Block","src":"7986:1868:131","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76437,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8023:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8030:12:131","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76322,"src":"8023:19:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":76436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8015:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76435,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:131","typeDescriptions":{}}},"id":76439,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8015:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76434,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"7996:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7996:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76441,"nodeType":"ExpressionStatement","src":"7996:48:131"},{"expression":{"arguments":[{"expression":{"id":76443,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8073:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76444,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8080:12:131","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76337,"src":"8073:19:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76442,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8054:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76446,"nodeType":"ExpressionStatement","src":"8054:39:131"},{"expression":{"arguments":[{"expression":{"id":76448,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8122:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8129:5:131","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76319,"src":"8122:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76447,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8103:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8103:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76451,"nodeType":"ExpressionStatement","src":"8103:32:131"},{"expression":{"arguments":[{"expression":{"id":76453,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8164:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76454,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8171:16:131","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76330,"src":"8164:23:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76452,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8145:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76455,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76456,"nodeType":"ExpressionStatement","src":"8145:43:131"},{"expression":{"arguments":[{"expression":{"id":76458,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8217:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76459,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8224:17:131","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76345,"src":"8217:24:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76457,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8198:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8198:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76461,"nodeType":"ExpressionStatement","src":"8198:44:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76462,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8257:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8264:13:131","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76326,"src":"8257:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8281:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:25:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76472,"nodeType":"IfStatement","src":"8253:95:131","trueBody":{"id":76471,"nodeType":"Block","src":"8284:64:131","statements":[{"expression":{"arguments":[{"expression":{"id":76467,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8317:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76468,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:12:131","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76332,"src":"8317:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76466,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"8298:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8298:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76470,"nodeType":"ExpressionStatement","src":"8298:39:131"}]}},{"expression":{"id":76478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76473,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"8357:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76475,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8370:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76476,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8377:5:131","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76319,"src":"8370:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76474,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"8364:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$76053_$","typeString":"type(contract FAllo)"}},"id":76477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8364:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"src":"8357:26:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":76479,"nodeType":"ExpressionStatement","src":"8357:26:131"},{"expression":{"id":76483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76480,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"8393:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76481,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8407:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8414:12:131","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76322,"src":"8407:19:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"src":"8393:33:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":76484,"nodeType":"ExpressionStatement","src":"8393:33:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76485,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8440:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8447:20:131","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76324,"src":"8440:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8440:32:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76493,"nodeType":"IfStatement","src":"8436:89:131","trueBody":{"id":76492,"nodeType":"Block","src":"8474:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76489,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76292,"src":"8495:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8495:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76491,"nodeType":"RevertStatement","src":"8488:26:131"}]}},{"expression":{"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76494,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"8534:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76495,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8556:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8563:20:131","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76324,"src":"8556:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8534:49:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76498,"nodeType":"ExpressionStatement","src":"8534:49:131"},{"expression":{"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76499,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"8593:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76500,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8608:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76501,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8615:13:131","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76326,"src":"8608:20:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8593:35:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76503,"nodeType":"ExpressionStatement","src":"8593:35:131"},{"expression":{"id":76507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76504,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76348,"src":"8638:13:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76505,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8654:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8661:14:131","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":76341,"src":"8654:21:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8638:37:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76508,"nodeType":"ExpressionStatement","src":"8638:37:131"},{"expression":{"id":76512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76509,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"8685:13:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76510,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8701:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8708:14:131","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":76339,"src":"8701:21:131","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8685:37:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76513,"nodeType":"ExpressionStatement","src":"8685:37:131"},{"expression":{"id":76517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76514,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76380,"src":"8732:16:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76515,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8751:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76516,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8758:16:131","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":76343,"src":"8751:23:131","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8732:42:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76518,"nodeType":"ExpressionStatement","src":"8732:42:131"},{"expression":{"id":76522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76519,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"8784:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76520,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8802:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76521,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8809:16:131","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76330,"src":"8802:23:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8784:41:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76523,"nodeType":"ExpressionStatement","src":"8784:41:131"},{"expression":{"id":76527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76524,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"8835:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76525,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8849:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76526,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:12:131","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76332,"src":"8849:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8835:33:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76528,"nodeType":"ExpressionStatement","src":"8835:33:131"},{"expression":{"id":76534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76529,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"8878:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76531,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8898:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76532,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8905:12:131","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76337,"src":"8898:19:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76530,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"8892:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75799_$","typeString":"type(contract ISafe)"}},"id":76533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8892:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"src":"8878:40:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"id":76535,"nodeType":"ExpressionStatement","src":"8878:40:131"},{"expression":{"id":76539,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76536,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76360,"src":"8928:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76537,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"8947:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76538,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8954:17:131","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76345,"src":"8947:24:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8928:43:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76540,"nodeType":"ExpressionStatement","src":"8928:43:131"},{"expression":{"arguments":[{"id":76542,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"8993:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76543,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9016:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76544,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9023:12:131","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76337,"src":"9016:19:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76541,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55493,"src":"8982:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:54:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76546,"nodeType":"ExpressionStatement","src":"8982:54:131"},{"expression":{"id":76553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76547,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76367,"src":"9047:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76549,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"9068:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":76550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9073:11:131","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":76044,"src":"9068:16:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:18:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76548,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"9058:9:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":76552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"9047:40:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76554,"nodeType":"ExpressionStatement","src":"9047:40:131"},{"assignments":[76559],"declarations":[{"constant":false,"id":76559,"mutability":"mutable","name":"owners","nameLocation":"9115:6:131","nodeType":"VariableDeclaration","scope":76650,"src":"9098:23:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76557,"name":"address","nodeType":"ElementaryTypeName","src":"9098:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76558,"nodeType":"ArrayTypeName","src":"9098:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76563,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76560,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"9124:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"id":76561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9136:9:131","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":75798,"src":"9124:21:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":76562,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:23:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9098:49:131"},{"assignments":[76568],"declarations":[{"constant":false,"id":76568,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"9174:19:131","nodeType":"VariableDeclaration","scope":76650,"src":"9157:36:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76566,"name":"address","nodeType":"ElementaryTypeName","src":"9157:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76567,"nodeType":"ArrayTypeName","src":"9157:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76577,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76572,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"9210:6:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9217:6:131","memberName":"length","nodeType":"MemberAccess","src":"9210:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":76574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9226:1:131","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9210:17:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76571,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9196:13:131","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76569,"name":"address","nodeType":"ElementaryTypeName","src":"9200:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76570,"nodeType":"ArrayTypeName","src":"9200:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76576,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9157:71:131"},{"body":{"id":76597,"nodeType":"Block","src":"9283:59:131","statements":[{"expression":{"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76589,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9297:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76591,"indexExpression":{"id":76590,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9317:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9297:22:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76592,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"9322:6:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76594,"indexExpression":{"id":76593,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9329:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9322:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9297:34:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76596,"nodeType":"ExpressionStatement","src":"9297:34:131"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76582,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9259:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76583,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"9263:6:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9270:6:131","memberName":"length","nodeType":"MemberAccess","src":"9263:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9259:17:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76598,"initializationExpression":{"assignments":[76579],"declarations":[{"constant":false,"id":76579,"mutability":"mutable","name":"i","nameLocation":"9252:1:131","nodeType":"VariableDeclaration","scope":76598,"src":"9244:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76578,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76581,"initialValue":{"hexValue":"30","id":76580,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9256:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9244:13:131"},"loopExpression":{"expression":{"id":76587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9278:3:131","subExpression":{"id":76586,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76579,"src":"9278:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76588,"nodeType":"ExpressionStatement","src":"9278:3:131"},"nodeType":"ForStatement","src":"9239:103:131"},{"expression":{"id":76609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76599,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9352:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76604,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76600,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9372:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9392:6:131","memberName":"length","nodeType":"MemberAccess","src":"9372:26:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9401:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9372:30:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9352:51:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76607,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"9414:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}],"id":76606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9406:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76605,"name":"address","nodeType":"ElementaryTypeName","src":"9406:7:131","typeDescriptions":{}}},"id":76608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9352:74:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76610,"nodeType":"ExpressionStatement","src":"9352:74:131"},{"expression":{"id":76621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76611,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9436:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76616,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76612,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9456:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9476:6:131","memberName":"length","nodeType":"MemberAccess","src":"9456:26:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":76614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9485:1:131","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9456:30:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9436:51:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76619,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9498:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":76618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9490:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76617,"name":"address","nodeType":"ElementaryTypeName","src":"9490:7:131","typeDescriptions":{}}},"id":76620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9490:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9436:67:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76622,"nodeType":"ExpressionStatement","src":"9436:67:131"},{"expression":{"id":76637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76623,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"9591:9:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76626,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9638:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76627,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9645:6:131","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76328,"src":"9638:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76628,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"9653:13:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76629,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9668:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76630,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9675:9:131","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76335,"src":"9668:16:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":76633,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9694:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":76632,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9686:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76631,"name":"address","nodeType":"ElementaryTypeName","src":"9686:7:131","typeDescriptions":{}}},"id":76634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9686:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76635,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9701:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76624,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76367,"src":"9615:8:131","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76625,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9624:13:131","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"9615:22:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":76636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9615:106:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9591:130:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76638,"nodeType":"ExpressionStatement","src":"9591:130:131"},{"expression":{"id":76641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76639,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"9732:14:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76640,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76568,"src":"9749:19:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"9732:36:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76642,"nodeType":"ExpressionStatement","src":"9732:36:131"},{"eventCall":{"arguments":[{"id":76644,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"9804:9:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76645,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76378,"src":"9815:13:131","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76646,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76431,"src":"9830:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76647,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9837:9:131","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76335,"src":"9830:16:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76643,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76122,"src":"9784:19:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9784:63:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76649,"nodeType":"EmitStatement","src":"9779:68:131"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7918:10:131","parameters":{"id":76432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76431,"mutability":"mutable","name":"params","nameLocation":"7971:6:131","nodeType":"VariableDeclaration","scope":76651,"src":"7929:48:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":76430,"nodeType":"UserDefinedTypeName","pathNode":{"id":76429,"name":"RegistryCommunity.InitializeParams","nameLocations":["7929:17:131","7947:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":76346,"src":"7929:34:131"},"referencedDeclaration":76346,"src":"7929:34:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"7928:50:131"},"returnParameters":{"id":76433,"nodeType":"ParameterList","parameters":[],"src":"7986:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76683,"nodeType":"FunctionDefinition","src":"9860:341:131","nodes":[],"body":{"id":76682,"nodeType":"Block","src":"10041:160:131","nodes":[],"statements":[{"assignments":[76667],"declarations":[{"constant":false,"id":76667,"mutability":"mutable","name":"strategyClone","nameLocation":"10059:13:131","nodeType":"VariableDeclaration","scope":76682,"src":"10051:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76666,"name":"address","nodeType":"ElementaryTypeName","src":"10051:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76674,"initialValue":{"arguments":[{"id":76670,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76360,"src":"10093:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10111:12:131","subExpression":{"id":76671,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76362,"src":"10111:10:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76668,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"10075:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":76669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10081:11:131","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"10075:17:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":76673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10051:73:131"},{"expression":{"arguments":[{"id":76676,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76667,"src":"10152:13:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76677,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"10167:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76678,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76656,"src":"10175:7:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":76679,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76659,"src":"10184:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76675,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[76683,76755],"referencedDeclaration":76755,"src":"10141:10:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$73112_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":76680,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:53:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":76665,"id":76681,"nodeType":"Return","src":"10134:60:131"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"9869:10:131","parameters":{"id":76660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76653,"mutability":"mutable","name":"_token","nameLocation":"9888:6:131","nodeType":"VariableDeclaration","scope":76683,"src":"9880:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76652,"name":"address","nodeType":"ElementaryTypeName","src":"9880:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76656,"mutability":"mutable","name":"_params","nameLocation":"9935:7:131","nodeType":"VariableDeclaration","scope":76683,"src":"9896:46:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76655,"nodeType":"UserDefinedTypeName","pathNode":{"id":76654,"name":"StrategyStruct.InitializeParams","nameLocations":["9896:14:131","9911:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"9896:31:131"},"referencedDeclaration":73112,"src":"9896:31:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76659,"mutability":"mutable","name":"_metadata","nameLocation":"9960:9:131","nodeType":"VariableDeclaration","scope":76683,"src":"9944:25:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76658,"nodeType":"UserDefinedTypeName","pathNode":{"id":76657,"name":"Metadata","nameLocations":["9944:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9944:8:131"},"referencedDeclaration":3098,"src":"9944:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"9879:91:131"},"returnParameters":{"id":76665,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76662,"mutability":"mutable","name":"poolId","nameLocation":"10011:6:131","nodeType":"VariableDeclaration","scope":76683,"src":"10003:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76661,"name":"uint256","nodeType":"ElementaryTypeName","src":"10003:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76664,"mutability":"mutable","name":"strategy","nameLocation":"10027:8:131","nodeType":"VariableDeclaration","scope":76683,"src":"10019:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76663,"name":"address","nodeType":"ElementaryTypeName","src":"10019:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10002:34:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76755,"nodeType":"FunctionDefinition","src":"10207:653:131","nodes":[],"body":{"id":76754,"nodeType":"Block","src":"10425:435:131","nodes":[],"statements":[{"assignments":[76701],"declarations":[{"constant":false,"id":76701,"mutability":"mutable","name":"token","nameLocation":"10443:5:131","nodeType":"VariableDeclaration","scope":76754,"src":"10435:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76700,"name":"address","nodeType":"ElementaryTypeName","src":"10435:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76703,"initialValue":{"id":76702,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76070,"src":"10451:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10435:22:131"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76704,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"10471:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76707,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10489:1:131","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":76706,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10481:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76705,"name":"address","nodeType":"ElementaryTypeName","src":"10481:7:131","typeDescriptions":{}}},"id":76708,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10481:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10471:20:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76715,"nodeType":"IfStatement","src":"10467:65:131","trueBody":{"id":76714,"nodeType":"Block","src":"10493:39:131","statements":[{"expression":{"id":76712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76710,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76701,"src":"10507:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76711,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"10515:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10507:14:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76713,"nodeType":"ExpressionStatement","src":"10507:14:131"}]}},{"expression":{"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76716,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"10541:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76717,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76685,"src":"10552:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10541:20:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76719,"nodeType":"ExpressionStatement","src":"10541:20:131"},{"assignments":[76724],"declarations":[{"constant":false,"id":76724,"mutability":"mutable","name":"_pool_managers","nameLocation":"10589:14:131","nodeType":"VariableDeclaration","scope":76754,"src":"10572:31:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76722,"name":"address","nodeType":"ElementaryTypeName","src":"10572:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76723,"nodeType":"ArrayTypeName","src":"10572:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76726,"initialValue":{"id":76725,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76409,"src":"10606:14:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10572:48:131"},{"expression":{"id":76741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76727,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76696,"src":"10631:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76730,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76354,"src":"10687:9:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76731,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"10698:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76734,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76690,"src":"10719:7:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":76732,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10708:3:131","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10712:6:131","memberName":"encode","nodeType":"MemberAccess","src":"10708:10:131","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10708:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76736,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76701,"src":"10729:5:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76737,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10736:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":76738,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"10739:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":76739,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76724,"src":"10750:14:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76728,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"10640:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":76729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10645:28:131","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":76039,"src":"10640:33:131","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":76740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10640:134:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10631:143:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76742,"nodeType":"ExpressionStatement","src":"10631:143:131"},{"eventCall":{"arguments":[{"id":76744,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76696,"src":"10802:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76745,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76698,"src":"10810:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76748,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10828:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":76747,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10820:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76746,"name":"address","nodeType":"ElementaryTypeName","src":"10820:7:131","typeDescriptions":{}}},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10820:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76750,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76687,"src":"10835:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76751,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76693,"src":"10843:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76743,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76173,"src":"10790:11:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":76752,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10790:63:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76753,"nodeType":"EmitStatement","src":"10785:68:131"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"10216:10:131","parameters":{"id":76694,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76685,"mutability":"mutable","name":"_strategy","nameLocation":"10244:9:131","nodeType":"VariableDeclaration","scope":76755,"src":"10236:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76684,"name":"address","nodeType":"ElementaryTypeName","src":"10236:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76687,"mutability":"mutable","name":"_token","nameLocation":"10271:6:131","nodeType":"VariableDeclaration","scope":76755,"src":"10263:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76686,"name":"address","nodeType":"ElementaryTypeName","src":"10263:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76690,"mutability":"mutable","name":"_params","nameLocation":"10326:7:131","nodeType":"VariableDeclaration","scope":76755,"src":"10287:46:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76689,"nodeType":"UserDefinedTypeName","pathNode":{"id":76688,"name":"StrategyStruct.InitializeParams","nameLocations":["10287:14:131","10302:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":73112,"src":"10287:31:131"},"referencedDeclaration":73112,"src":"10287:31:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$73112_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76693,"mutability":"mutable","name":"_metadata","nameLocation":"10359:9:131","nodeType":"VariableDeclaration","scope":76755,"src":"10343:25:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76692,"nodeType":"UserDefinedTypeName","pathNode":{"id":76691,"name":"Metadata","nameLocations":["10343:8:131"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10343:8:131"},"referencedDeclaration":3098,"src":"10343:8:131","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10226:148:131"},"returnParameters":{"id":76699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76696,"mutability":"mutable","name":"poolId","nameLocation":"10399:6:131","nodeType":"VariableDeclaration","scope":76755,"src":"10391:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76695,"name":"uint256","nodeType":"ElementaryTypeName","src":"10391:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76698,"mutability":"mutable","name":"strategy","nameLocation":"10415:8:131","nodeType":"VariableDeclaration","scope":76755,"src":"10407:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76697,"name":"address","nodeType":"ElementaryTypeName","src":"10407:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10390:34:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76872,"nodeType":"FunctionDefinition","src":"10866:1179:131","nodes":[],"body":{"id":76871,"nodeType":"Block","src":"10943:1102:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":76763,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"10979:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76762,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"10953:25:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10953:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76765,"nodeType":"ExpressionStatement","src":"10953:34:131"},{"expression":{"arguments":[{"id":76767,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11017:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76766,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76232,"src":"10997:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10997:30:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76769,"nodeType":"ExpressionStatement","src":"10997:30:131"},{"expression":{"arguments":[{"id":76771,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11056:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76770,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"11037:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76772,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11037:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76773,"nodeType":"ExpressionStatement","src":"11037:29:131"},{"condition":{"baseExpression":{"baseExpression":{"id":76774,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"11081:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76776,"indexExpression":{"id":76775,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11109:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76778,"indexExpression":{"id":76777,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11118:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76783,"nodeType":"IfStatement","src":"11077:107:131","trueBody":{"id":76782,"nodeType":"Block","src":"11130:54:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76779,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76280,"src":"11151:20:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76781,"nodeType":"RevertStatement","src":"11144:29:131"}]}},{"assignments":[76786],"declarations":[{"constant":false,"id":76786,"mutability":"mutable","name":"member","nameLocation":"11208:6:131","nodeType":"VariableDeclaration","scope":76871,"src":"11194:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":76785,"nodeType":"UserDefinedTypeName","pathNode":{"id":76784,"name":"Member","nameLocations":["11194:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"11194:6:131"},"referencedDeclaration":76313,"src":"11194:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":76790,"initialValue":{"baseExpression":{"id":76787,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"11217:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76789,"indexExpression":{"id":76788,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11237:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11217:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11194:51:131"},{"assignments":[76792],"declarations":[{"constant":false,"id":76792,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"11264:17:131","nodeType":"VariableDeclaration","scope":76871,"src":"11256:25:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76791,"name":"uint256","nodeType":"ElementaryTypeName","src":"11256:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76795,"initialValue":{"expression":{"id":76793,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76786,"src":"11284:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":76794,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11291:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"11284:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11256:47:131"},{"assignments":[76797],"declarations":[{"constant":false,"id":76797,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"11321:16:131","nodeType":"VariableDeclaration","scope":76871,"src":"11313:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76796,"name":"uint256","nodeType":"ElementaryTypeName","src":"11313:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76799,"initialValue":{"id":76798,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"11340:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11313:46:131"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":76808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76801,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11389:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76800,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11374:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11400:14:131","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":73021,"src":"11374:40:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$73031_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":76805,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"11420:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":76806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11435:11:131","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"11420:26:131","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11447:9:131","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":73030,"src":"11420:36:131","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"11374:82:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76821,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11578:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76820,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11563:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11589:14:131","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":73021,"src":"11563:40:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$73031_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76825,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73113,"src":"11609:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$73113_$","typeString":"type(library StrategyStruct)"}},"id":76826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11624:11:131","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":73031,"src":"11609:26:131","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$73031_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76827,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11636:5:131","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":73027,"src":"11609:32:131","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$73031","typeString":"enum StrategyStruct.PointSystem"}},"src":"11563:78:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76840,"nodeType":"IfStatement","src":"11559:195:131","trueBody":{"id":76839,"nodeType":"Block","src":"11643:111:131","statements":[{"expression":{"id":76837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76829,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"11657:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76834,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11716:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76835,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76792,"src":"11725:17:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76831,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11691:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76830,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11676:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11702:13:131","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":73006,"src":"11676:39:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76836,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:67:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11657:86:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76838,"nodeType":"ExpressionStatement","src":"11657:86:131"}]}},"id":76841,"nodeType":"IfStatement","src":"11370:384:131","trueBody":{"id":76819,"nodeType":"Block","src":"11458:95:131","statements":[{"expression":{"id":76817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76809,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"11472:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76814,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11531:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":76811,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11506:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76810,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"11491:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":76812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":76813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11517:13:131","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":73006,"src":"11491:39:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:51:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11472:70:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76818,"nodeType":"ExpressionStatement","src":"11472:70:131"}]}},{"expression":{"id":76848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76842,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"11764:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76845,"indexExpression":{"id":76843,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11786:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11764:30:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76846,"indexExpression":{"id":76844,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11795:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11764:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76847,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"11808:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11764:60:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76849,"nodeType":"ExpressionStatement","src":"11764:60:131"},{"expression":{"id":76856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76850,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"11853:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76853,"indexExpression":{"id":76851,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11881:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11853:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76854,"indexExpression":{"id":76852,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11890:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11853:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76855,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11903:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11853:54:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76857,"nodeType":"ExpressionStatement","src":"11853:54:131"},{"expression":{"arguments":[{"id":76862,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"11951:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":76858,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"11918:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76860,"indexExpression":{"id":76859,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"11937:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11918:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76861,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11946:4:131","memberName":"push","nodeType":"MemberAccess","src":"11918:32:131","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$_t_address_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer,address)"}},"id":76863,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11918:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76864,"nodeType":"ExpressionStatement","src":"11918:43:131"},{"eventCall":{"arguments":[{"id":76866,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"12001:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76867,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76759,"src":"12010:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76868,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76797,"src":"12021:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76865,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"11977:23:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":76869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:61:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76870,"nodeType":"EmitStatement","src":"11972:66:131"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"10875:24:131","parameters":{"id":76760,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76757,"mutability":"mutable","name":"_member","nameLocation":"10908:7:131","nodeType":"VariableDeclaration","scope":76872,"src":"10900:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76756,"name":"address","nodeType":"ElementaryTypeName","src":"10900:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76759,"mutability":"mutable","name":"_strategy","nameLocation":"10925:9:131","nodeType":"VariableDeclaration","scope":76872,"src":"10917:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76758,"name":"address","nodeType":"ElementaryTypeName","src":"10917:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10899:36:131"},"returnParameters":{"id":76761,"nodeType":"ParameterList","parameters":[],"src":"10943:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76931,"nodeType":"FunctionDefinition","src":"12051:691:131","nodes":[],"body":{"id":76930,"nodeType":"Block","src":"12130:612:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":76880,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12166:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76879,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"12140:25:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76881,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12140:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76882,"nodeType":"ExpressionStatement","src":"12140:34:131"},{"expression":{"arguments":[{"id":76884,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12203:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76883,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"12184:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76885,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12184:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76886,"nodeType":"ExpressionStatement","src":"12184:29:131"},{"expression":{"arguments":[{"expression":{"id":76888,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12243:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76889,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12247:6:131","memberName":"sender","nodeType":"MemberAccess","src":"12243:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76890,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12255:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76887,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76248,"src":"12223:19:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":76891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12223:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76892,"nodeType":"ExpressionStatement","src":"12223:42:131"},{"condition":{"id":76898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12280:48:131","subExpression":{"baseExpression":{"baseExpression":{"id":76893,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"12281:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76895,"indexExpression":{"id":76894,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12309:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76897,"indexExpression":{"id":76896,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12318:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76903,"nodeType":"IfStatement","src":"12276:110:131","trueBody":{"id":76902,"nodeType":"Block","src":"12330:56:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76899,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76282,"src":"12351:22:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12351:24:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76901,"nodeType":"RevertStatement","src":"12344:31:131"}]}},{"expression":{"id":76910,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76904,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76406,"src":"12396:27:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76907,"indexExpression":{"id":76905,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12424:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12396:36:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76908,"indexExpression":{"id":76906,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12433:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12396:47:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":76909,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12446:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12396:55:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76911,"nodeType":"ExpressionStatement","src":"12396:55:131"},{"expression":{"id":76918,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76912,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"12461:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76915,"indexExpression":{"id":76913,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12483:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12461:30:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76916,"indexExpression":{"id":76914,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12492:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12461:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":76917,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12461:45:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76919,"nodeType":"ExpressionStatement","src":"12461:45:131"},{"expression":{"arguments":[{"id":76921,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12541:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76922,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12550:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76920,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76984,"src":"12516:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12516:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76924,"nodeType":"ExpressionStatement","src":"12516:44:131"},{"eventCall":{"arguments":[{"id":76926,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76874,"src":"12716:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76927,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76876,"src":"12725:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76925,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76144,"src":"12690:25:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12690:45:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76929,"nodeType":"EmitStatement","src":"12685:50:131"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"12060:26:131","parameters":{"id":76877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76874,"mutability":"mutable","name":"_member","nameLocation":"12095:7:131","nodeType":"VariableDeclaration","scope":76931,"src":"12087:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76873,"name":"address","nodeType":"ElementaryTypeName","src":"12087:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76876,"mutability":"mutable","name":"_strategy","nameLocation":"12112:9:131","nodeType":"VariableDeclaration","scope":76931,"src":"12104:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76875,"name":"address","nodeType":"ElementaryTypeName","src":"12104:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12086:36:131"},"returnParameters":{"id":76878,"nodeType":"ParameterList","parameters":[],"src":"12130:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76984,"nodeType":"FunctionDefinition","src":"12748:425:131","nodes":[],"body":{"id":76983,"nodeType":"Block","src":"12827:346:131","nodes":[],"statements":[{"assignments":[76942],"declarations":[{"constant":false,"id":76942,"mutability":"mutable","name":"memberStrategies","nameLocation":"12855:16:131","nodeType":"VariableDeclaration","scope":76983,"src":"12837:34:131","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76940,"name":"address","nodeType":"ElementaryTypeName","src":"12837:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76941,"nodeType":"ArrayTypeName","src":"12837:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76946,"initialValue":{"baseExpression":{"id":76943,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"12874:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76945,"indexExpression":{"id":76944,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76933,"src":"12893:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12874:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12837:64:131"},{"body":{"id":76981,"nodeType":"Block","src":"12965:202:131","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76958,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"12983:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76960,"indexExpression":{"id":76959,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"13000:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12983:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76961,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76935,"src":"13006:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12983:32:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76980,"nodeType":"IfStatement","src":"12979:178:131","trueBody":{"id":76979,"nodeType":"Block","src":"13017:140:131","statements":[{"expression":{"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76963,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13035:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76965,"indexExpression":{"id":76964,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"13052:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13035:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76966,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13057:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76971,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76967,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13074:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13091:6:131","memberName":"length","nodeType":"MemberAccess","src":"13074:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13100:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13074:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13057:45:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13035:67:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76973,"nodeType":"ExpressionStatement","src":"13035:67:131"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76974,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"13120:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13137:3:131","memberName":"pop","nodeType":"MemberAccess","src":"13120:20:131","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13120:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76978,"nodeType":"ExpressionStatement","src":"13120:22:131"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76954,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76951,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"12931:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76952,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76942,"src":"12935:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12952:6:131","memberName":"length","nodeType":"MemberAccess","src":"12935:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12931:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76982,"initializationExpression":{"assignments":[76948],"declarations":[{"constant":false,"id":76948,"mutability":"mutable","name":"i","nameLocation":"12924:1:131","nodeType":"VariableDeclaration","scope":76982,"src":"12916:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76947,"name":"uint256","nodeType":"ElementaryTypeName","src":"12916:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76950,"initialValue":{"hexValue":"30","id":76949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12916:13:131"},"loopExpression":{"expression":{"id":76956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12960:3:131","subExpression":{"id":76955,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76948,"src":"12960:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76957,"nodeType":"ExpressionStatement","src":"12960:3:131"},"nodeType":"ForStatement","src":"12911:256:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"12757:24:131","parameters":{"id":76936,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76933,"mutability":"mutable","name":"_member","nameLocation":"12790:7:131","nodeType":"VariableDeclaration","scope":76984,"src":"12782:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76932,"name":"address","nodeType":"ElementaryTypeName","src":"12782:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76935,"mutability":"mutable","name":"_strategy","nameLocation":"12807:9:131","nodeType":"VariableDeclaration","scope":76984,"src":"12799:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76934,"name":"address","nodeType":"ElementaryTypeName","src":"12799:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12781:36:131"},"returnParameters":{"id":76937,"nodeType":"ParameterList","parameters":[],"src":"12827:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77088,"nodeType":"FunctionDefinition","src":"13179:998:131","nodes":[],"body":{"id":77087,"nodeType":"Block","src":"13245:932:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76991,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"13255:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13255:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76993,"nodeType":"ExpressionStatement","src":"13255:26:131"},{"assignments":[76995],"declarations":[{"constant":false,"id":76995,"mutability":"mutable","name":"member","nameLocation":"13299:6:131","nodeType":"VariableDeclaration","scope":77087,"src":"13291:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76994,"name":"address","nodeType":"ElementaryTypeName","src":"13291:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76998,"initialValue":{"expression":{"id":76996,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13308:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13312:6:131","memberName":"sender","nodeType":"MemberAccess","src":"13308:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13291:27:131"},{"assignments":[77003],"declarations":[{"constant":false,"id":77003,"mutability":"mutable","name":"memberStrategies","nameLocation":"13345:16:131","nodeType":"VariableDeclaration","scope":77087,"src":"13328:33:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77001,"name":"address","nodeType":"ElementaryTypeName","src":"13328:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77002,"nodeType":"ArrayTypeName","src":"13328:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77007,"initialValue":{"baseExpression":{"id":77004,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"13364:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77006,"indexExpression":{"id":77005,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13383:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13364:26:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13328:62:131"},{"assignments":[77009],"declarations":[{"constant":false,"id":77009,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13409:16:131","nodeType":"VariableDeclaration","scope":77087,"src":"13401:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77008,"name":"uint256","nodeType":"ElementaryTypeName","src":"13401:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77010,"nodeType":"VariableDeclarationStatement","src":"13401:24:131"},{"body":{"id":77062,"nodeType":"Block","src":"13490:479:131","statements":[{"expression":{"id":77032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77022,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77009,"src":"13609:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77029,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13678:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77030,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"13686:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":77024,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13643:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77026,"indexExpression":{"id":77025,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13660:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13643:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77023,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"13628:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":77027,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:35:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":77028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13664:13:131","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":73006,"src":"13628:49:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":77031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:72:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13609:91:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77033,"nodeType":"ExpressionStatement","src":"13609:91:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77036,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77034,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77009,"src":"13718:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":77035,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13738:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13718:21:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77061,"nodeType":"IfStatement","src":"13714:229:131","trueBody":{"id":77060,"nodeType":"Block","src":"13741:202:131","statements":[{"expression":{"id":77045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":77037,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"13759:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77042,"indexExpression":{"id":77038,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13781:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13759:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77043,"indexExpression":{"baseExpression":{"id":77039,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13789:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77041,"indexExpression":{"id":77040,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13806:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13789:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13759:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":77044,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77009,"src":"13813:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13759:70:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77046,"nodeType":"ExpressionStatement","src":"13759:70:131"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":77050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13859:16:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":77051,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"13877:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77053,"indexExpression":{"id":77052,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"13899:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77057,"indexExpression":{"baseExpression":{"id":77054,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13907:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77056,"indexExpression":{"id":77055,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13924:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13907:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77047,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"13847:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13855:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"13847:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13847:81:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77059,"nodeType":"ExpressionStatement","src":"13847:81:131"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77018,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77015,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13456:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77016,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77003,"src":"13460:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13477:6:131","memberName":"length","nodeType":"MemberAccess","src":"13460:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13456:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77063,"initializationExpression":{"assignments":[77012],"declarations":[{"constant":false,"id":77012,"mutability":"mutable","name":"i","nameLocation":"13449:1:131","nodeType":"VariableDeclaration","scope":77063,"src":"13441:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77011,"name":"uint256","nodeType":"ElementaryTypeName","src":"13441:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77014,"initialValue":{"hexValue":"30","id":77013,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13453:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13441:13:131"},"loopExpression":{"expression":{"id":77020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13485:3:131","subExpression":{"id":77019,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77012,"src":"13485:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77021,"nodeType":"ExpressionStatement","src":"13485:3:131"},"nodeType":"ForStatement","src":"13436:533:131"},{"expression":{"arguments":[{"id":77067,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"14008:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77070,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14024:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77069,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14016:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77068,"name":"address","nodeType":"ElementaryTypeName","src":"14016:7:131","typeDescriptions":{}}},"id":77071,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14016:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77072,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"14031:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77064,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"13979:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77066,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:16:131","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57238,"src":"13979:28:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13979:66:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77074,"nodeType":"ExpressionStatement","src":"13979:66:131"},{"expression":{"id":77080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77075,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"14055:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77077,"indexExpression":{"id":77076,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"14075:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14055:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77078,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14083:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"14055:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":77079,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"14099:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14055:57:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77081,"nodeType":"ExpressionStatement","src":"14055:57:131"},{"eventCall":{"arguments":[{"id":77083,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76995,"src":"14148:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77084,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76986,"src":"14156:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77082,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76154,"src":"14127:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77086,"nodeType":"EmitStatement","src":"14122:48:131"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":76989,"kind":"modifierInvocation","modifierName":{"id":76988,"name":"nonReentrant","nameLocations":["13232:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"13232:12:131"},"nodeType":"ModifierInvocation","src":"13232:12:131"}],"name":"increasePower","nameLocation":"13188:13:131","parameters":{"id":76987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76986,"mutability":"mutable","name":"_amountStaked","nameLocation":"13210:13:131","nodeType":"VariableDeclaration","scope":77088,"src":"13202:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76985,"name":"uint256","nodeType":"ElementaryTypeName","src":"13202:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:23:131"},"returnParameters":{"id":76990,"nodeType":"ParameterList","parameters":[],"src":"13245:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77238,"nodeType":"FunctionDefinition","src":"14317:1554:131","nodes":[],"body":{"id":77237,"nodeType":"Block","src":"14385:1486:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77095,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76202,"src":"14395:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77096,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77097,"nodeType":"ExpressionStatement","src":"14395:26:131"},{"assignments":[77099],"declarations":[{"constant":false,"id":77099,"mutability":"mutable","name":"member","nameLocation":"14439:6:131","nodeType":"VariableDeclaration","scope":77237,"src":"14431:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77098,"name":"address","nodeType":"ElementaryTypeName","src":"14431:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77102,"initialValue":{"expression":{"id":77100,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14448:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77101,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14452:6:131","memberName":"sender","nodeType":"MemberAccess","src":"14448:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14431:27:131"},{"assignments":[77107],"declarations":[{"constant":false,"id":77107,"mutability":"mutable","name":"memberStrategies","nameLocation":"14486:16:131","nodeType":"VariableDeclaration","scope":77237,"src":"14468:34:131","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77105,"name":"address","nodeType":"ElementaryTypeName","src":"14468:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77106,"nodeType":"ArrayTypeName","src":"14468:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77111,"initialValue":{"baseExpression":{"id":77108,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"14505:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77110,"indexExpression":{"id":77109,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"14524:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14505:26:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14468:63:131"},{"assignments":[77113],"declarations":[{"constant":false,"id":77113,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14550:16:131","nodeType":"VariableDeclaration","scope":77237,"src":"14542:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77112,"name":"uint256","nodeType":"ElementaryTypeName","src":"14542:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77114,"nodeType":"VariableDeclarationStatement","src":"14542:24:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":77115,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"14581:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77117,"indexExpression":{"id":77116,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"14601:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14581:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14609:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"14581:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":77119,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"14624:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:58:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":77121,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"14642:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:80:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77127,"nodeType":"IfStatement","src":"14577:140:131","trueBody":{"id":77126,"nodeType":"Block","src":"14663:54:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77123,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76300,"src":"14684:20:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14684:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77125,"nodeType":"RevertStatement","src":"14677:29:131"}]}},{"expression":{"arguments":[{"id":77131,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"14751:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77132,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"14759:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77128,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"14726:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14738:12:131","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":57211,"src":"14726:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77133,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14726:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77134,"nodeType":"ExpressionStatement","src":"14726:49:131"},{"body":{"id":77223,"nodeType":"Block","src":"14839:897:131","statements":[{"assignments":[77147],"declarations":[{"constant":false,"id":77147,"mutability":"mutable","name":"strategy","nameLocation":"14861:8:131","nodeType":"VariableDeclaration","scope":77223,"src":"14853:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77146,"name":"address","nodeType":"ElementaryTypeName","src":"14853:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77151,"initialValue":{"baseExpression":{"id":77148,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"14872:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77150,"indexExpression":{"id":77149,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"14889:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14872:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14853:38:131"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77155,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"14941:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":77154,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14936:4:131","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14936:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":77157,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14957:11:131","memberName":"interfaceId","nodeType":"MemberAccess","src":"14936:32:131","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77152,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77147,"src":"14909:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14918:17:131","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58372,"src":"14909:26:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:60:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77221,"nodeType":"Block","src":"15459:250:131","statements":[{"expression":{"id":77210,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77201,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15544:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77203,"indexExpression":{"id":77202,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"15561:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15544:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":77204,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15566:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77209,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77205,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15583:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15600:6:131","memberName":"length","nodeType":"MemberAccess","src":"15583:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":77207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15609:1:131","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15583:27:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15566:45:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15544:67:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77211,"nodeType":"ExpressionStatement","src":"15544:67:131"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77212,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15629:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15646:3:131","memberName":"pop","nodeType":"MemberAccess","src":"15629:20:131","typeDescriptions":{"typeIdentifier":"t_function_arraypop_nonpayable$_t_array$_t_address_$dyn_storage_ptr_$returns$__$attached_to$_t_array$_t_address_$dyn_storage_ptr_$","typeString":"function (address[] storage pointer)"}},"id":77215,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15629:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77216,"nodeType":"ExpressionStatement","src":"15629:22:131"},{"expression":{"arguments":[{"id":77218,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77147,"src":"15685:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77217,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"15669:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15669:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77220,"nodeType":"ExpressionStatement","src":"15669:25:131"}]},"id":77222,"nodeType":"IfStatement","src":"14905:804:131","trueBody":{"id":77200,"nodeType":"Block","src":"14971:482:131","statements":[{"expression":{"id":77167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77159,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"14989:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77164,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15047:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77165,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"15055:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":77161,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77147,"src":"15023:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77160,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"15008:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":77162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:24:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":77163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15033:13:131","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":73015,"src":"15008:38:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":77166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:63:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14989:82:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77168,"nodeType":"ExpressionStatement","src":"14989:82:131"},{"assignments":[77170],"declarations":[{"constant":false,"id":77170,"mutability":"mutable","name":"currentPower","nameLocation":"15097:12:131","nodeType":"VariableDeclaration","scope":77200,"src":"15089:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77169,"name":"uint256","nodeType":"ElementaryTypeName","src":"15089:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77178,"initialValue":{"baseExpression":{"baseExpression":{"id":77171,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"15112:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77173,"indexExpression":{"id":77172,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15134:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77177,"indexExpression":{"baseExpression":{"id":77174,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15142:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77176,"indexExpression":{"id":77175,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"15159:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15089:73:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77179,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"15184:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77180,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77170,"src":"15203:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15184:31:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77198,"nodeType":"Block","src":"15328:111:131","statements":[{"expression":{"id":77196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":77188,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"15350:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77193,"indexExpression":{"id":77189,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15372:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15350:29:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77194,"indexExpression":{"baseExpression":{"id":77190,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"15380:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77192,"indexExpression":{"id":77191,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"15397:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15380:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15350:50:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":77195,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"15404:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15350:70:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77197,"nodeType":"ExpressionStatement","src":"15350:70:131"}]},"id":77199,"nodeType":"IfStatement","src":"15180:259:131","trueBody":{"id":77187,"nodeType":"Block","src":"15217:105:131","statements":[{"errorCall":{"arguments":[{"id":77183,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77113,"src":"15272:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":77184,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77170,"src":"15290:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77182,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76306,"src":"15246:25:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":77185,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15246:57:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77186,"nodeType":"RevertStatement","src":"15239:64:131"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"14805:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77140,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77107,"src":"14809:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":77141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14826:6:131","memberName":"length","nodeType":"MemberAccess","src":"14809:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14805:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77224,"initializationExpression":{"assignments":[77136],"declarations":[{"constant":false,"id":77136,"mutability":"mutable","name":"i","nameLocation":"14798:1:131","nodeType":"VariableDeclaration","scope":77224,"src":"14790:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77135,"name":"uint256","nodeType":"ElementaryTypeName","src":"14790:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77138,"initialValue":{"hexValue":"30","id":77137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14802:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14790:13:131"},"loopExpression":{"expression":{"id":77144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14834:3:131","subExpression":{"id":77143,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"14834:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77145,"nodeType":"ExpressionStatement","src":"14834:3:131"},"nodeType":"ForStatement","src":"14785:951:131"},{"expression":{"id":77230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77225,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"15745:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77227,"indexExpression":{"id":77226,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15765:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15745:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15773:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"15745:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":77229,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"15789:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15745:59:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77231,"nodeType":"ExpressionStatement","src":"15745:59:131"},{"eventCall":{"arguments":[{"id":77233,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77099,"src":"15840:6:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77234,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77090,"src":"15848:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77232,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76160,"src":"15819:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15819:45:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77236,"nodeType":"EmitStatement","src":"15814:50:131"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":77093,"kind":"modifierInvocation","modifierName":{"id":77092,"name":"nonReentrant","nameLocations":["14372:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"14372:12:131"},"nodeType":"ModifierInvocation","src":"14372:12:131"}],"name":"decreasePower","nameLocation":"14326:13:131","parameters":{"id":77091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77090,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"14348:15:131","nodeType":"VariableDeclaration","scope":77238,"src":"14340:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77089,"name":"uint256","nodeType":"ElementaryTypeName","src":"14340:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14339:25:131"},"returnParameters":{"id":77094,"nodeType":"ParameterList","parameters":[],"src":"14385:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77254,"nodeType":"FunctionDefinition","src":"15877:165:131","nodes":[],"body":{"id":77253,"nodeType":"Block","src":"15977:65:131","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":77247,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76390,"src":"15994:21:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77249,"indexExpression":{"id":77248,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77240,"src":"16016:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:30:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77251,"indexExpression":{"id":77250,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77242,"src":"16025:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77246,"id":77252,"nodeType":"Return","src":"15987:48:131"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"15886:24:131","parameters":{"id":77243,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77240,"mutability":"mutable","name":"_member","nameLocation":"15919:7:131","nodeType":"VariableDeclaration","scope":77254,"src":"15911:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77239,"name":"address","nodeType":"ElementaryTypeName","src":"15911:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77242,"mutability":"mutable","name":"_strategy","nameLocation":"15936:9:131","nodeType":"VariableDeclaration","scope":77254,"src":"15928:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77241,"name":"address","nodeType":"ElementaryTypeName","src":"15928:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15910:36:131"},"returnParameters":{"id":77246,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77245,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77254,"src":"15968:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77244,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15967:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77267,"nodeType":"FunctionDefinition","src":"16048:143:131","nodes":[],"body":{"id":77266,"nodeType":"Block","src":"16126:65:131","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77261,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"16143:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77263,"indexExpression":{"id":77262,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"16163:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16143:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16172:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"16143:41:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77260,"id":77265,"nodeType":"Return","src":"16136:48:131"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"16057:21:131","parameters":{"id":77257,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77256,"mutability":"mutable","name":"_member","nameLocation":"16087:7:131","nodeType":"VariableDeclaration","scope":77267,"src":"16079:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77255,"name":"address","nodeType":"ElementaryTypeName","src":"16079:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16078:17:131"},"returnParameters":{"id":77260,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77259,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77267,"src":"16117:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77258,"name":"uint256","nodeType":"ElementaryTypeName","src":"16117:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16116:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77304,"nodeType":"FunctionDefinition","src":"16320:313:131","nodes":[],"body":{"id":77303,"nodeType":"Block","src":"16372:261:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77272,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"16382:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77274,"nodeType":"ExpressionStatement","src":"16382:17:131"},{"assignments":[77276],"declarations":[{"constant":false,"id":77276,"mutability":"mutable","name":"strategy","nameLocation":"16417:8:131","nodeType":"VariableDeclaration","scope":77303,"src":"16409:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77275,"name":"address","nodeType":"ElementaryTypeName","src":"16409:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77285,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77281,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77269,"src":"16449:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77279,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"16436:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":77280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16441:7:131","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":76052,"src":"16436:12:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16436:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16457:8:131","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"16436:29:131","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77278,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16428:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77277,"name":"address","nodeType":"ElementaryTypeName","src":"16428:7:131","typeDescriptions":{}}},"id":77284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16409:57:131"},{"expression":{"arguments":[{"id":77287,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77276,"src":"16495:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77286,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"16476:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77289,"nodeType":"ExpressionStatement","src":"16476:28:131"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77293,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"16550:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}],"id":77292,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16545:4:131","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16545:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$73022","typeString":"type(contract IPointStrategy)"}},"id":77295,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16566:11:131","memberName":"interfaceId","nodeType":"MemberAccess","src":"16545:32:131","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77290,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77276,"src":"16518:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16527:17:131","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58372,"src":"16518:26:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16518:60:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77302,"nodeType":"IfStatement","src":"16514:113:131","trueBody":{"id":77301,"nodeType":"Block","src":"16580:47:131","statements":[{"expression":{"arguments":[{"id":77298,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77276,"src":"16607:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77297,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"16594:12:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16594:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77300,"nodeType":"ExpressionStatement","src":"16594:22:131"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"16329:19:131","parameters":{"id":77270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77269,"mutability":"mutable","name":"poolId","nameLocation":"16357:6:131","nodeType":"VariableDeclaration","scope":77304,"src":"16349:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77268,"name":"uint256","nodeType":"ElementaryTypeName","src":"16349:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16348:16:131"},"returnParameters":{"id":77271,"nodeType":"ParameterList","parameters":[],"src":"16372:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77317,"nodeType":"FunctionDefinition","src":"16639:120:131","nodes":[],"body":{"id":77316,"nodeType":"Block","src":"16689:70:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77309,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"16699:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16699:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77311,"nodeType":"ExpressionStatement","src":"16699:17:131"},{"expression":{"arguments":[{"id":77313,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77306,"src":"16739:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77312,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77341,"src":"16726:12:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16726:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77315,"nodeType":"ExpressionStatement","src":"16726:26:131"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"16648:11:131","parameters":{"id":77307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77306,"mutability":"mutable","name":"_newStrategy","nameLocation":"16668:12:131","nodeType":"VariableDeclaration","scope":77317,"src":"16660:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77305,"name":"address","nodeType":"ElementaryTypeName","src":"16660:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16659:22:131"},"returnParameters":{"id":77308,"nodeType":"ParameterList","parameters":[],"src":"16689:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77341,"nodeType":"FunctionDefinition","src":"16765:244:131","nodes":[],"body":{"id":77340,"nodeType":"Block","src":"16818:191:131","nodes":[],"statements":[{"condition":{"baseExpression":{"id":77322,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"16832:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77324,"indexExpression":{"id":77323,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"16850:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16832:31:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77329,"nodeType":"IfStatement","src":"16828:85:131","trueBody":{"id":77328,"nodeType":"Block","src":"16865:48:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77325,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76284,"src":"16886:14:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16886:16:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77327,"nodeType":"RevertStatement","src":"16879:23:131"}]}},{"expression":{"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77330,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"16922:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77332,"indexExpression":{"id":77331,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"16940:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16922:31:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16956:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16922:38:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77335,"nodeType":"ExpressionStatement","src":"16922:38:131"},{"eventCall":{"arguments":[{"id":77337,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77319,"src":"16989:12:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77336,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"16975:13:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16975:27:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77339,"nodeType":"EmitStatement","src":"16970:32:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"16774:12:131","parameters":{"id":77320,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77319,"mutability":"mutable","name":"_newStrategy","nameLocation":"16795:12:131","nodeType":"VariableDeclaration","scope":77341,"src":"16787:20:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77318,"name":"address","nodeType":"ElementaryTypeName","src":"16787:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16786:22:131"},"returnParameters":{"id":77321,"nodeType":"ParameterList","parameters":[],"src":"16818:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77357,"nodeType":"FunctionDefinition","src":"17015:133:131","nodes":[],"body":{"id":77356,"nodeType":"Block","src":"17075:73:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77346,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77343,"src":"17089:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17109:1:131","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":77348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17101:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77347,"name":"address","nodeType":"ElementaryTypeName","src":"17101:7:131","typeDescriptions":{}}},"id":77350,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17101:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17089:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77355,"nodeType":"IfStatement","src":"17085:56:131","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77352,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76268,"src":"17120:19:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77353,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17120:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77354,"nodeType":"RevertStatement","src":"17113:28:131"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"17024:18:131","parameters":{"id":77344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77343,"mutability":"mutable","name":"_address","nameLocation":"17051:8:131","nodeType":"VariableDeclaration","scope":77357,"src":"17043:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77342,"name":"address","nodeType":"ElementaryTypeName","src":"17043:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17042:18:131"},"returnParameters":{"id":77345,"nodeType":"ParameterList","parameters":[],"src":"17075:0:131"},"scope":77913,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77385,"nodeType":"FunctionDefinition","src":"17154:229:131","nodes":[],"body":{"id":77384,"nodeType":"Block","src":"17209:174:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77362,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"17219:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17219:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77364,"nodeType":"ExpressionStatement","src":"17219:17:131"},{"assignments":[77366],"declarations":[{"constant":false,"id":77366,"mutability":"mutable","name":"strategy","nameLocation":"17254:8:131","nodeType":"VariableDeclaration","scope":77384,"src":"17246:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77365,"name":"address","nodeType":"ElementaryTypeName","src":"17246:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77375,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77371,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77359,"src":"17286:6:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77369,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76376,"src":"17273:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$76053","typeString":"contract FAllo"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17278:7:131","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":76052,"src":"17273:12:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17273:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77373,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17294:8:131","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17273:29:131","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17265:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77367,"name":"address","nodeType":"ElementaryTypeName","src":"17265:7:131","typeDescriptions":{}}},"id":77374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17265:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17246:57:131"},{"expression":{"arguments":[{"id":77377,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77366,"src":"17332:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77376,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17313:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17313:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77379,"nodeType":"ExpressionStatement","src":"17313:28:131"},{"expression":{"arguments":[{"id":77381,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77366,"src":"17367:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77380,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"17351:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17351:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77383,"nodeType":"ExpressionStatement","src":"17351:25:131"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"17163:22:131","parameters":{"id":77360,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77359,"mutability":"mutable","name":"poolId","nameLocation":"17194:6:131","nodeType":"VariableDeclaration","scope":77385,"src":"17186:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77358,"name":"uint256","nodeType":"ElementaryTypeName","src":"17186:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17185:16:131"},"returnParameters":{"id":77361,"nodeType":"ParameterList","parameters":[],"src":"17209:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77405,"nodeType":"FunctionDefinition","src":"17389:186:131","nodes":[],"body":{"id":77404,"nodeType":"Block","src":"17442:133:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":77391,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"17471:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77390,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17452:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77392,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17452:29:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77393,"nodeType":"ExpressionStatement","src":"17452:29:131"},{"expression":{"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77394,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76384,"src":"17491:17:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77396,"indexExpression":{"id":77395,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"17509:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17491:28:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":77397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17522:5:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17491:36:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77399,"nodeType":"ExpressionStatement","src":"17491:36:131"},{"eventCall":{"arguments":[{"id":77401,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77387,"src":"17558:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77400,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76130,"src":"17542:15:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17542:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77403,"nodeType":"EmitStatement","src":"17537:31:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"17398:15:131","parameters":{"id":77388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77387,"mutability":"mutable","name":"_strategy","nameLocation":"17422:9:131","nodeType":"VariableDeclaration","scope":77405,"src":"17414:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77386,"name":"address","nodeType":"ElementaryTypeName","src":"17414:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17413:19:131"},"returnParameters":{"id":77389,"nodeType":"ParameterList","parameters":[],"src":"17442:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77418,"nodeType":"FunctionDefinition","src":"17581:120:131","nodes":[],"body":{"id":77417,"nodeType":"Block","src":"17631:70:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77410,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"17641:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77412,"nodeType":"ExpressionStatement","src":"17641:17:131"},{"expression":{"arguments":[{"id":77414,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77407,"src":"17684:9:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77413,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77405,"src":"17668:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17668:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77416,"nodeType":"ExpressionStatement","src":"17668:26:131"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"17590:14:131","parameters":{"id":77408,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77407,"mutability":"mutable","name":"_strategy","nameLocation":"17613:9:131","nodeType":"VariableDeclaration","scope":77418,"src":"17605:17:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77406,"name":"address","nodeType":"ElementaryTypeName","src":"17605:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17604:19:131"},"returnParameters":{"id":77409,"nodeType":"ParameterList","parameters":[],"src":"17631:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77443,"nodeType":"FunctionDefinition","src":"17707:240:131","nodes":[],"body":{"id":77442,"nodeType":"Block","src":"17761:186:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77423,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"17771:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17771:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77425,"nodeType":"ExpressionStatement","src":"17771:17:131"},{"expression":{"arguments":[{"id":77427,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77420,"src":"17817:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77426,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77357,"src":"17798:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17798:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77429,"nodeType":"ExpressionStatement","src":"17798:25:131"},{"expression":{"id":77432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77430,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"17833:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77431,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77420,"src":"17854:5:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17833:26:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":77433,"nodeType":"ExpressionStatement","src":"17833:26:131"},{"eventCall":{"arguments":[{"arguments":[{"id":77437,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"17907:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}],"id":77436,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17899:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77435,"name":"address","nodeType":"ElementaryTypeName","src":"17899:7:131","typeDescriptions":{}}},"id":77438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17899:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77439,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"17921:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77434,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76089,"src":"17874:24:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":77440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17874:66:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77441,"nodeType":"EmitStatement","src":"17869:71:131"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"17716:14:131","parameters":{"id":77421,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77420,"mutability":"mutable","name":"_safe","nameLocation":"17747:5:131","nodeType":"VariableDeclaration","scope":77443,"src":"17731:21:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77419,"name":"address","nodeType":"ElementaryTypeName","src":"17731:15:131","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"17730:23:131"},"returnParameters":{"id":77422,"nodeType":"ParameterList","parameters":[],"src":"17761:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77460,"nodeType":"FunctionDefinition","src":"17953:179:131","nodes":[],"body":{"id":77459,"nodeType":"Block","src":"17992:140:131","nodes":[],"statements":[{"expression":{"id":77450,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77446,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76373,"src":"18002:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77448,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18022:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77447,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75799,"src":"18016:5:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75799_$","typeString":"type(contract ISafe)"}},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18016:25:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"src":"18002:39:131","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75799","typeString":"contract ISafe"}},"id":77451,"nodeType":"ExpressionStatement","src":"18002:39:131"},{"expression":{"id":77453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18051:25:131","subExpression":{"id":77452,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18058:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77454,"nodeType":"ExpressionStatement","src":"18051:25:131"},{"eventCall":{"arguments":[{"id":77456,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18106:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77455,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76083,"src":"18091:14:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77457,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18091:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77458,"nodeType":"EmitStatement","src":"18086:39:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"17962:18:131","parameters":{"id":77444,"nodeType":"ParameterList","parameters":[],"src":"17980:2:131"},"returnParameters":{"id":77445,"nodeType":"ParameterList","parameters":[],"src":"17992:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77476,"nodeType":"FunctionDefinition","src":"18138:171:131","nodes":[],"body":{"id":77475,"nodeType":"Block","src":"18174:135:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77463,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18188:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18192:6:131","memberName":"sender","nodeType":"MemberAccess","src":"18188:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77465,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76364,"src":"18202:18:131","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"18188:32:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77471,"nodeType":"IfStatement","src":"18184:89:131","trueBody":{"id":77470,"nodeType":"Block","src":"18222:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77467,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76288,"src":"18243:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18243:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77469,"nodeType":"RevertStatement","src":"18236:26:131"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77472,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77460,"src":"18282:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18282:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77474,"nodeType":"ExpressionStatement","src":"18282:20:131"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"18147:17:131","parameters":{"id":77461,"nodeType":"ParameterList","parameters":[],"src":"18164:2:131"},"returnParameters":{"id":77462,"nodeType":"ParameterList","parameters":[],"src":"18174:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77494,"nodeType":"FunctionDefinition","src":"18315:182:131","nodes":[],"body":{"id":77493,"nodeType":"Block","src":"18387:110:131","nodes":[],"statements":[{"assignments":[77485],"declarations":[{"constant":false,"id":77485,"mutability":"mutable","name":"newMember","nameLocation":"18411:9:131","nodeType":"VariableDeclaration","scope":77493,"src":"18397:23:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77484,"nodeType":"UserDefinedTypeName","pathNode":{"id":77483,"name":"Member","nameLocations":["18397:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"18397:6:131"},"referencedDeclaration":76313,"src":"18397:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77489,"initialValue":{"baseExpression":{"id":77486,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"18423:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77488,"indexExpression":{"id":77487,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77478,"src":"18443:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18423:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18397:54:131"},{"expression":{"expression":{"id":77490,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77485,"src":"18468:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18478:12:131","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76312,"src":"18468:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77482,"id":77492,"nodeType":"Return","src":"18461:29:131"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"18324:8:131","parameters":{"id":77479,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77478,"mutability":"mutable","name":"_member","nameLocation":"18341:7:131","nodeType":"VariableDeclaration","scope":77494,"src":"18333:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77477,"name":"address","nodeType":"ElementaryTypeName","src":"18333:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18332:17:131"},"returnParameters":{"id":77482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77481,"mutability":"mutable","name":"_isMember","nameLocation":"18376:9:131","nodeType":"VariableDeclaration","scope":77494,"src":"18371:14:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77480,"name":"bool","nodeType":"ElementaryTypeName","src":"18371:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18370:16:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77653,"nodeType":"FunctionDefinition","src":"18503:1907:131","nodes":[],"body":{"id":77652,"nodeType":"Block","src":"18557:1853:131","nodes":[],"statements":[{"assignments":[77500],"declarations":[{"constant":false,"id":77500,"mutability":"mutable","name":"_member","nameLocation":"18575:7:131","nodeType":"VariableDeclaration","scope":77652,"src":"18567:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77499,"name":"address","nodeType":"ElementaryTypeName","src":"18567:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77503,"initialValue":{"expression":{"id":77501,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18585:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18589:6:131","memberName":"sender","nodeType":"MemberAccess","src":"18585:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18567:28:131"},{"assignments":[77506],"declarations":[{"constant":false,"id":77506,"mutability":"mutable","name":"newMember","nameLocation":"18620:9:131","nodeType":"VariableDeclaration","scope":77652,"src":"18605:24:131","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77505,"nodeType":"UserDefinedTypeName","pathNode":{"id":77504,"name":"Member","nameLocations":["18605:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"18605:6:131"},"referencedDeclaration":76313,"src":"18605:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77510,"initialValue":{"baseExpression":{"id":77507,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"18632:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77509,"indexExpression":{"id":77508,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"18652:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18632:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18605:55:131"},{"assignments":[77513],"declarations":[{"constant":false,"id":77513,"mutability":"mutable","name":"gardensFactory","nameLocation":"18686:14:131","nodeType":"VariableDeclaration","scope":77652,"src":"18670:30:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"},"typeName":{"id":77512,"nodeType":"UserDefinedTypeName","pathNode":{"id":77511,"name":"RegistryFactory","nameLocations":["18670:15:131"],"nodeType":"IdentifierPath","referencedDeclaration":78149,"src":"18670:15:131"},"referencedDeclaration":78149,"src":"18670:15:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77517,"initialValue":{"arguments":[{"id":77515,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"18719:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77514,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"18703:15:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$78149_$","typeString":"type(contract RegistryFactory)"}},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18703:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"18670:65:131"},{"assignments":[77519],"declarations":[{"constant":false,"id":77519,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"18753:18:131","nodeType":"VariableDeclaration","scope":77652,"src":"18745:26:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77518,"name":"uint256","nodeType":"ElementaryTypeName","src":"18745:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77529,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77520,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"18775:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77521,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"18797:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18775:34:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77523,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18774:36:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18814:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77525,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"18820:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18814:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77527,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18813:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18774:62:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18745:91:131"},{"assignments":[77531],"declarations":[{"constant":false,"id":77531,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"18854:16:131","nodeType":"VariableDeclaration","scope":77652,"src":"18846:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77530,"name":"uint256","nodeType":"ElementaryTypeName","src":"18846:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77547,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77532,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"18886:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77537,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18946:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77536,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18938:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77535,"name":"address","nodeType":"ElementaryTypeName","src":"18938:7:131","typeDescriptions":{}}},"id":77538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18938:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77533,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"18908:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18923:14:131","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":78148,"src":"18908:29:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18908:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18886:66:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18885:68:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77544,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77542,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18957:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77543,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"18963:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18957:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77545,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18885:94:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18846:133:131"},{"condition":{"id":77551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18993:18:131","subExpression":{"arguments":[{"id":77549,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"19003:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77548,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"18994:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18994:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77651,"nodeType":"IfStatement","src":"18989:1415:131","trueBody":{"id":77650,"nodeType":"Block","src":"19013:1391:131","statements":[{"expression":{"id":77556,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77552,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77506,"src":"19027:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77554,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19037:12:131","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76312,"src":"19027:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77555,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19052:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19027:29:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77557,"nodeType":"ExpressionStatement","src":"19027:29:131"},{"expression":{"id":77562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77558,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77506,"src":"19071:9:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77560,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19081:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"19071:22:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77561,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"19096:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19071:44:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77563,"nodeType":"ExpressionStatement","src":"19071:44:131"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":77567,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19213:13:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":77570,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"19236:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":77569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19228:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77568,"name":"address","nodeType":"ElementaryTypeName","src":"19228:7:131","typeDescriptions":{}}},"id":77571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:20:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77564,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"19201:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19209:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"19201:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77573,"nodeType":"ExpressionStatement","src":"19201:48:131"},{"expression":{"arguments":[{"id":77577,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"19310:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77580,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19327:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77579,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19319:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77578,"name":"address","nodeType":"ElementaryTypeName","src":"19319:7:131","typeDescriptions":{}}},"id":77581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19319:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77584,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77582,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"19334:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77583,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19356:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77585,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"19377:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:59:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77574,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"19264:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77576,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19276:16:131","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57238,"src":"19264:28:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77587,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19264:143:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77588,"nodeType":"ExpressionStatement","src":"19264:143:131"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":77592,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19770:20:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":77593,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19792:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77589,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"19758:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19766:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"19758:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19758:53:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77595,"nodeType":"ExpressionStatement","src":"19758:53:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77596,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19829:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19850:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19829:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77614,"nodeType":"IfStatement","src":"19825:175:131","trueBody":{"id":77613,"nodeType":"Block","src":"19853:147:131","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":77602,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19883:13:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":77603,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"19898:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77599,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"19871:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19879:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"19871:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77605,"nodeType":"ExpressionStatement","src":"19871:39:131"},{"expression":{"arguments":[{"id":77609,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76356,"src":"19953:11:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77610,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77519,"src":"19966:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77606,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"19928:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19940:12:131","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":57211,"src":"19928:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19928:57:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77612,"nodeType":"ExpressionStatement","src":"19928:57:131"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":77618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20025:18:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":77619,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"20045:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77615,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"20013:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20021:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22410,"src":"20013:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20013:49:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77621,"nodeType":"ExpressionStatement","src":"20013:49:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77622,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"20080:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20099:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20080:20:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77644,"nodeType":"IfStatement","src":"20076:252:131","trueBody":{"id":77643,"nodeType":"Block","src":"20102:226:131","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":77628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20132:40:131","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77629,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"20174:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20189:21:131","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":78067,"src":"20174:36:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77625,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29766,"src":"20120:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29766_$","typeString":"type(library console)"}},"id":77627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20128:3:131","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22461,"src":"20120:11:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20120:93:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77633,"nodeType":"ExpressionStatement","src":"20120:93:131"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77637,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77513,"src":"20256:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20271:21:131","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":78067,"src":"20256:36:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20256:38:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77640,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77531,"src":"20296:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77634,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"20231:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20243:12:131","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":57211,"src":"20231:24:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$57117_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20231:82:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77642,"nodeType":"ExpressionStatement","src":"20231:82:131"}]}},{"eventCall":{"arguments":[{"id":77646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77500,"src":"20364:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77647,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20373:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77645,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76095,"src":"20347:16:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20347:46:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77649,"nodeType":"EmitStatement","src":"20342:51:131"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":77497,"kind":"modifierInvocation","modifierName":{"id":77496,"name":"nonReentrant","nameLocations":["18544:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"18544:12:131"},"nodeType":"ModifierInvocation","src":"18544:12:131"}],"name":"stakeAndRegisterMember","nameLocation":"18512:22:131","parameters":{"id":77495,"nodeType":"ParameterList","parameters":[],"src":"18534:2:131"},"returnParameters":{"id":77498,"nodeType":"ParameterList","parameters":[],"src":"18557:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77702,"nodeType":"FunctionDefinition","src":"20416:467:131","nodes":[],"body":{"id":77701,"nodeType":"Block","src":"20480:403:131","nodes":[],"statements":[{"assignments":[77660],"declarations":[{"constant":false,"id":77660,"mutability":"mutable","name":"gardensFactory","nameLocation":"20506:14:131","nodeType":"VariableDeclaration","scope":77701,"src":"20490:30:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"},"typeName":{"id":77659,"nodeType":"UserDefinedTypeName","pathNode":{"id":77658,"name":"RegistryFactory","nameLocations":["20490:15:131"],"nodeType":"IdentifierPath","referencedDeclaration":78149,"src":"20490:15:131"},"referencedDeclaration":78149,"src":"20490:15:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77664,"initialValue":{"arguments":[{"id":77662,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"20539:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77661,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"20523:15:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$78149_$","typeString":"type(contract RegistryFactory)"}},"id":77663,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20523:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20490:65:131"},{"assignments":[77666],"declarations":[{"constant":false,"id":77666,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20573:18:131","nodeType":"VariableDeclaration","scope":77701,"src":"20565:26:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77665,"name":"uint256","nodeType":"ElementaryTypeName","src":"20565:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77676,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77667,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20595:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77668,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"20617:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:34:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77670,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20594:36:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77672,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"20640:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20634:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77674,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20633:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20594:62:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20565:91:131"},{"assignments":[77678],"declarations":[{"constant":false,"id":77678,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20674:16:131","nodeType":"VariableDeclaration","scope":77701,"src":"20666:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77677,"name":"uint256","nodeType":"ElementaryTypeName","src":"20666:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77694,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77679,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20706:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77684,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20766:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":77683,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20758:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77682,"name":"address","nodeType":"ElementaryTypeName","src":"20758:7:131","typeDescriptions":{}}},"id":77685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77680,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77660,"src":"20728:14:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}},"id":77681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20743:14:131","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":78148,"src":"20728:29:131","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20728:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20706:66:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77688,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20705:68:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77691,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77689,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20777:3:131","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77690,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76414,"src":"20783:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20777:21:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77692,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20776:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20705:94:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20666:133:131"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77695,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20817:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77696,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77666,"src":"20839:18:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:40:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77698,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77678,"src":"20860:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:59:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77657,"id":77700,"nodeType":"Return","src":"20810:66:131"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"20425:22:131","parameters":{"id":77654,"nodeType":"ParameterList","parameters":[],"src":"20447:2:131"},"returnParameters":{"id":77657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77656,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77702,"src":"20471:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77655,"name":"uint256","nodeType":"ElementaryTypeName","src":"20471:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20470:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77710,"nodeType":"FunctionDefinition","src":"20889:107:131","nodes":[],"body":{"id":77709,"nodeType":"Block","src":"20953:43:131","nodes":[],"statements":[{"expression":{"id":77707,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"20970:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77706,"id":77708,"nodeType":"Return","src":"20963:26:131"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"20898:20:131","parameters":{"id":77703,"nodeType":"ParameterList","parameters":[],"src":"20918:2:131"},"returnParameters":{"id":77706,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77705,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77710,"src":"20944:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77704,"name":"uint256","nodeType":"ElementaryTypeName","src":"20944:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20943:9:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77727,"nodeType":"FunctionDefinition","src":"21002:182:131","nodes":[],"body":{"id":77726,"nodeType":"Block","src":"21061:123:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77715,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"21071:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21071:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77717,"nodeType":"ExpressionStatement","src":"21071:17:131"},{"expression":{"id":77720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77718,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76350,"src":"21098:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77719,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77712,"src":"21120:10:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21098:32:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77721,"nodeType":"ExpressionStatement","src":"21098:32:131"},{"eventCall":{"arguments":[{"id":77723,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77712,"src":"21166:10:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77722,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76148,"src":"21145:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77724,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21145:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77725,"nodeType":"EmitStatement","src":"21140:37:131"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"21011:20:131","parameters":{"id":77713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77712,"mutability":"mutable","name":"_newAmount","nameLocation":"21040:10:131","nodeType":"VariableDeclaration","scope":77727,"src":"21032:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77711,"name":"uint256","nodeType":"ElementaryTypeName","src":"21032:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21031:20:131"},"returnParameters":{"id":77714,"nodeType":"ParameterList","parameters":[],"src":"21061:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77752,"nodeType":"FunctionDefinition","src":"21190:280:131","nodes":[],"body":{"id":77751,"nodeType":"Block","src":"21248:222:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77732,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"21258:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21258:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77734,"nodeType":"ExpressionStatement","src":"21258:17:131"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77735,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"21289:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77736,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76419,"src":"21308:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21289:26:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77742,"nodeType":"IfStatement","src":"21285:86:131","trueBody":{"id":77741,"nodeType":"Block","src":"21317:54:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77738,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76294,"src":"21338:20:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21338:22:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77740,"nodeType":"RevertStatement","src":"21331:29:131"}]}},{"expression":{"id":77745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77743,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76352,"src":"21380:12:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77744,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"21395:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21380:31:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77746,"nodeType":"ExpressionStatement","src":"21380:31:131"},{"eventCall":{"arguments":[{"id":77748,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"21446:16:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77747,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76113,"src":"21426:19:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21426:37:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77750,"nodeType":"EmitStatement","src":"21421:42:131"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"21199:15:131","parameters":{"id":77730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77729,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"21223:16:131","nodeType":"VariableDeclaration","scope":77752,"src":"21215:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77728,"name":"uint256","nodeType":"ElementaryTypeName","src":"21215:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21214:26:131"},"returnParameters":{"id":77731,"nodeType":"ParameterList","parameters":[],"src":"21248:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77765,"nodeType":"FunctionDefinition","src":"21512:132:131","nodes":[],"body":{"id":77764,"nodeType":"Block","src":"21581:63:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":77760,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"21606:21:131","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77761,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77754,"src":"21629:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77759,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55289,"src":"21598:7:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77762,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21598:39:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77758,"id":77763,"nodeType":"Return","src":"21591:46:131"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"21521:15:131","parameters":{"id":77755,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77754,"mutability":"mutable","name":"_member","nameLocation":"21545:7:131","nodeType":"VariableDeclaration","scope":77765,"src":"21537:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77753,"name":"address","nodeType":"ElementaryTypeName","src":"21537:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21536:17:131"},"returnParameters":{"id":77758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77757,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77765,"src":"21575:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77756,"name":"bool","nodeType":"ElementaryTypeName","src":"21575:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21574:6:131"},"scope":77913,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77815,"nodeType":"FunctionDefinition","src":"21650:453:131","nodes":[],"body":{"id":77814,"nodeType":"Block","src":"21698:405:131","nodes":[],"statements":[{"assignments":[77771],"declarations":[{"constant":false,"id":77771,"mutability":"mutable","name":"_member","nameLocation":"21716:7:131","nodeType":"VariableDeclaration","scope":77814,"src":"21708:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77770,"name":"address","nodeType":"ElementaryTypeName","src":"21708:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77774,"initialValue":{"expression":{"id":77772,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21726:3:131","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21730:6:131","memberName":"sender","nodeType":"MemberAccess","src":"21726:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21708:28:131"},{"expression":{"arguments":[{"id":77776,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21772:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77775,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76217,"src":"21746:25:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21746:34:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77778,"nodeType":"ExpressionStatement","src":"21746:34:131"},{"expression":{"arguments":[{"id":77780,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21814:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77779,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77852,"src":"21790:23:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77781,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21790:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77782,"nodeType":"ExpressionStatement","src":"21790:32:131"},{"assignments":[77785],"declarations":[{"constant":false,"id":77785,"mutability":"mutable","name":"member","nameLocation":"21846:6:131","nodeType":"VariableDeclaration","scope":77814,"src":"21832:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77784,"nodeType":"UserDefinedTypeName","pathNode":{"id":77783,"name":"Member","nameLocations":["21832:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"21832:6:131"},"referencedDeclaration":76313,"src":"21832:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77789,"initialValue":{"baseExpression":{"id":77786,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"21855:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77788,"indexExpression":{"id":77787,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21875:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21855:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21832:51:131"},{"expression":{"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21893:35:131","subExpression":{"baseExpression":{"id":77790,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"21900:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77792,"indexExpression":{"id":77791,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21920:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21900:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"21893:35:131"},{"expression":{"id":77798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21938:34:131","subExpression":{"baseExpression":{"id":77795,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"21945:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77797,"indexExpression":{"id":77796,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"21964:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21945:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77799,"nodeType":"ExpressionStatement","src":"21938:34:131"},{"expression":{"arguments":[{"id":77803,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"22004:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77804,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77785,"src":"22013:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77805,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22020:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"22013:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77800,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"21983:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77802,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21995:8:131","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":57084,"src":"21983:20:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21983:50:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77807,"nodeType":"ExpressionStatement","src":"21983:50:131"},{"eventCall":{"arguments":[{"id":77809,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77771,"src":"22067:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77810,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77785,"src":"22076:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77811,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22083:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"22076:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77808,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76101,"src":"22048:18:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:48:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77813,"nodeType":"EmitStatement","src":"22043:53:131"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":77768,"kind":"modifierInvocation","modifierName":{"id":77767,"name":"nonReentrant","nameLocations":["21685:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"21685:12:131"},"nodeType":"ModifierInvocation","src":"21685:12:131"}],"name":"unregisterMember","nameLocation":"21659:16:131","parameters":{"id":77766,"nodeType":"ParameterList","parameters":[],"src":"21675:2:131"},"returnParameters":{"id":77769,"nodeType":"ParameterList","parameters":[],"src":"21698:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77852,"nodeType":"FunctionDefinition","src":"22109:466:131","nodes":[],"body":{"id":77851,"nodeType":"Block","src":"22168:407:131","nodes":[],"statements":[{"assignments":[77824],"declarations":[{"constant":false,"id":77824,"mutability":"mutable","name":"memberStrategies","nameLocation":"22195:16:131","nodeType":"VariableDeclaration","scope":77851,"src":"22178:33:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77822,"name":"address","nodeType":"ElementaryTypeName","src":"22178:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77823,"nodeType":"ArrayTypeName","src":"22178:9:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77828,"initialValue":{"baseExpression":{"id":77825,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76400,"src":"22214:18:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77827,"indexExpression":{"id":77826,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77817,"src":"22233:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22214:27:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22178:63:131"},{"body":{"id":77849,"nodeType":"Block","src":"22371:198:131","statements":[{"expression":{"arguments":[{"id":77846,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77817,"src":"22550:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":77841,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77824,"src":"22512:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77843,"indexExpression":{"id":77842,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77830,"src":"22529:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22512:19:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77840,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73022,"src":"22497:14:131","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$73022_$","typeString":"type(contract IPointStrategy)"}},"id":77844,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:35:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$73022","typeString":"contract IPointStrategy"}},"id":77845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22533:16:131","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72997,"src":"22497:52:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:61:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77848,"nodeType":"ExpressionStatement","src":"22497:61:131"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77833,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77830,"src":"22337:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77834,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77824,"src":"22341:16:131","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:6:131","memberName":"length","nodeType":"MemberAccess","src":"22341:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22337:27:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77850,"initializationExpression":{"assignments":[77830],"declarations":[{"constant":false,"id":77830,"mutability":"mutable","name":"i","nameLocation":"22330:1:131","nodeType":"VariableDeclaration","scope":77850,"src":"22322:9:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77829,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77832,"initialValue":{"hexValue":"30","id":77831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22334:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22322:13:131"},"loopExpression":{"expression":{"id":77838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22366:3:131","subExpression":{"id":77837,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77830,"src":"22366:1:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77839,"nodeType":"ExpressionStatement","src":"22366:3:131"},"nodeType":"ForStatement","src":"22317:252:131"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"22118:23:131","parameters":{"id":77818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77817,"mutability":"mutable","name":"_member","nameLocation":"22150:7:131","nodeType":"VariableDeclaration","scope":77852,"src":"22142:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77816,"name":"address","nodeType":"ElementaryTypeName","src":"22142:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22141:17:131"},"returnParameters":{"id":77819,"nodeType":"ParameterList","parameters":[],"src":"22168:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77912,"nodeType":"FunctionDefinition","src":"22581:571:131","nodes":[],"body":{"id":77911,"nodeType":"Block","src":"22664:488:131","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77861,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"22674:15:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22674:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77863,"nodeType":"ExpressionStatement","src":"22674:17:131"},{"condition":{"id":77865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22705:14:131","subExpression":{"id":77864,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76348,"src":"22706:13:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77870,"nodeType":"IfStatement","src":"22701:68:131","trueBody":{"id":77869,"nodeType":"Block","src":"22721:48:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77866,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76296,"src":"22742:14:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77867,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22742:16:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77868,"nodeType":"RevertStatement","src":"22735:23:131"}]}},{"condition":{"id":77874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22782:18:131","subExpression":{"arguments":[{"id":77872,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22792:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77871,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77494,"src":"22783:8:131","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77873,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22783:17:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77879,"nodeType":"IfStatement","src":"22778:75:131","trueBody":{"id":77878,"nodeType":"Block","src":"22802:51:131","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77875,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76274,"src":"22823:17:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77876,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22823:19:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77877,"nodeType":"RevertStatement","src":"22816:26:131"}]}},{"assignments":[77882],"declarations":[{"constant":false,"id":77882,"mutability":"mutable","name":"member","nameLocation":"22876:6:131","nodeType":"VariableDeclaration","scope":77911,"src":"22862:20:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77881,"nodeType":"UserDefinedTypeName","pathNode":{"id":77880,"name":"Member","nameLocations":["22862:6:131"],"nodeType":"IdentifierPath","referencedDeclaration":76313,"src":"22862:6:131"},"referencedDeclaration":76313,"src":"22862:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77886,"initialValue":{"baseExpression":{"id":77883,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"22885:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77885,"indexExpression":{"id":77884,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22905:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22885:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22862:51:131"},{"expression":{"arguments":[{"id":77888,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22947:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77887,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77852,"src":"22923:23:131","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22923:32:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77890,"nodeType":"ExpressionStatement","src":"22923:32:131"},{"expression":{"id":77894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"22965:35:131","subExpression":{"baseExpression":{"id":77891,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76395,"src":"22972:19:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76313_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77893,"indexExpression":{"id":77892,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"22992:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22972:28:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77895,"nodeType":"ExpressionStatement","src":"22965:35:131"},{"expression":{"arguments":[{"id":77899,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77856,"src":"23032:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77900,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"23050:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77901,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23057:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"23050:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77896,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76370,"src":"23011:11:131","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":77898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23023:8:131","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":57084,"src":"23011:20:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23011:59:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77903,"nodeType":"ExpressionStatement","src":"23011:59:131"},{"eventCall":{"arguments":[{"id":77905,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77854,"src":"23098:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77906,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77856,"src":"23107:16:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77907,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77882,"src":"23125:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76313_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23132:12:131","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76310,"src":"23125:19:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77904,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76109,"src":"23085:12:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":77909,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23085:60:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77910,"nodeType":"EmitStatement","src":"23080:65:131"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":77859,"kind":"modifierInvocation","modifierName":{"id":77858,"name":"nonReentrant","nameLocations":["22651:12:131"],"nodeType":"IdentifierPath","referencedDeclaration":56291,"src":"22651:12:131"},"nodeType":"ModifierInvocation","src":"22651:12:131"}],"name":"kickMember","nameLocation":"22590:10:131","parameters":{"id":77857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77854,"mutability":"mutable","name":"_member","nameLocation":"22609:7:131","nodeType":"VariableDeclaration","scope":77912,"src":"22601:15:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77853,"name":"address","nodeType":"ElementaryTypeName","src":"22601:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77856,"mutability":"mutable","name":"_transferAddress","nameLocation":"22626:16:131","nodeType":"VariableDeclaration","scope":77912,"src":"22618:24:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77855,"name":"address","nodeType":"ElementaryTypeName","src":"22618:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22600:43:131"},"returnParameters":{"id":77860,"nodeType":"ParameterList","parameters":[],"src":"22664:0:131"},"scope":77913,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":76054,"name":"ReentrancyGuard","nameLocations":["1660:15:131"],"nodeType":"IdentifierPath","referencedDeclaration":56326,"src":"1660:15:131"},"id":76055,"nodeType":"InheritanceSpecifier","src":"1660:15:131"},{"baseName":{"id":76056,"name":"AccessControl","nameLocations":["1677:13:131"],"nodeType":"IdentifierPath","referencedDeclaration":55525,"src":"1677:13:131"},"id":76057,"nodeType":"InheritanceSpecifier","src":"1677:13:131"}],"canonicalName":"RegistryCommunity","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77913,55525,58322,58528,55598,57959,56326],"name":"RegistryCommunity","nameLocation":"1639:17:131","scope":77914,"usedErrors":[76268,76270,76272,76274,76276,76278,76280,76282,76284,76286,76288,76290,76292,76294,76296,76298,76300,76306]}],"license":"AGPL-3.0-only"},"id":131} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json b/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json index a8f7279a0..4e331da53 100644 --- a/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json +++ b/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052600060015534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61531e806100836000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106a3565b6101fa565b6040519081526020015b60405180910390f35b61011261010d3660046106d7565b61027b565b005b6101126102e7565b61011261012a3660046106a3565b6102fb565b61014261013d366004610848565b61036d565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b61011261019336600461099e565b61048e565b600354610142906001600160a01b031681565b6101126101b93660046106a3565b6104ea565b6101ea6101cc3660046106a3565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081205460ff1661025c576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090206001015490565b61028361057a565b6001600160a01b038216600081815260026020908152604091829020805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102ef61057a565b6102f960006105d4565b565b61030361057a565b61030c81610631565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161037c90610671565b604051809103906000f080158015610398573d6000803e3d6000fd5b506001805491925060006103ab836109ca565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906103ff908690600401610a5e565b600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050506001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b61049661057a565b6001600160a01b038216600081815260026020908152604091829020600101849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102db565b6104f261057a565b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610253565b610577816105d4565b50565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610253565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610b9e83390190565b6001600160a01b038116811461057757600080fd5b803561069e8161067e565b919050565b6000602082840312156106b557600080fd5b81356106c08161067e565b9392505050565b8035801515811461069e57600080fd5b600080604083850312156106ea57600080fd5b82356106f58161067e565b9150610703602084016106c7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156107465761074661070c565b60405290565b600082601f83011261075d57600080fd5b813567ffffffffffffffff808211156107785761077861070c565b604051601f8301601f19908116603f011681019082821181831017156107a0576107a061070c565b816040528381528660208588010111156107b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107eb57600080fd5b6040516040810167ffffffffffffffff828210818311171561080f5761080f61070c565b8160405282935084358352602085013591508082111561082e57600080fd5b5061083b8582860161074c565b6020830152505092915050565b60006020828403121561085a57600080fd5b813567ffffffffffffffff8082111561087257600080fd5b908301906101a0828603121561088757600080fd5b61088f610722565b61089883610693565b81526108a660208401610693565b60208201526040830135604082015260608301356060820152608083013560808201526108d560a08401610693565b60a08201526108e660c08401610693565b60c082015260e0830135828111156108fd57600080fd5b610909878286016107d9565b60e08301525061010061091d818501610693565b90820152610120838101358381111561093557600080fd5b6109418882870161074c565b8284015250506101406109558185016106c7565b90820152610160838101358381111561096d57600080fd5b6109798882870161074c565b828401525050610180915061098f828401610693565b91810191909152949350505050565b600080604083850312156109b157600080fd5b82356109bc8161067e565b946020939093013593505050565b6000600182016109ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a17576020818501810151868301820152016109fb565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5660408501826109f1565b949350505050565b60208152610a786020820183516001600160a01b03169052565b60006020830151610a9460408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610acd60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b016101c0860184610a37565b90860151909250610120610b1f868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b3f85846109f1565b945080880151925050610160610b588188018415159052565b80880151925050610180818786030181880152610b7585846109f1565b94508088015192505050610b93828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220bca611242a8026815b84fc06ce7414f9a0771fe120a1bdebef2c9f513c6e0a7f64736f6c63430008130033a264697066735822122092a0644d167505cb0a33644cce05f9570b51516921580cf917a77bd320468fb664736f6c63430008130033","sourceMap":"202:2981:114:-:0;;;267:1;244:24;;202:2981;;;;;;;;;-1:-1:-1;936:32:27;719:10:35;936:18:27;:32::i;:::-;202:2981:114;;2426:187:27;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:27;;;-1:-1:-1;;;;;;2534:17:27;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;202:2981:114:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106a3565b6101fa565b6040519081526020015b60405180910390f35b61011261010d3660046106d7565b61027b565b005b6101126102e7565b61011261012a3660046106a3565b6102fb565b61014261013d366004610848565b61036d565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b61011261019336600461099e565b61048e565b600354610142906001600160a01b031681565b6101126101b93660046106a3565b6104ea565b6101ea6101cc3660046106a3565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081205460ff1661025c576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090206001015490565b61028361057a565b6001600160a01b038216600081815260026020908152604091829020805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102ef61057a565b6102f960006105d4565b565b61030361057a565b61030c81610631565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161037c90610671565b604051809103906000f080158015610398573d6000803e3d6000fd5b506001805491925060006103ab836109ca565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906103ff908690600401610a5e565b600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050506001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b61049661057a565b6001600160a01b038216600081815260026020908152604091829020600101849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102db565b6104f261057a565b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610253565b610577816105d4565b50565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610253565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610b9e83390190565b6001600160a01b038116811461057757600080fd5b803561069e8161067e565b919050565b6000602082840312156106b557600080fd5b81356106c08161067e565b9392505050565b8035801515811461069e57600080fd5b600080604083850312156106ea57600080fd5b82356106f58161067e565b9150610703602084016106c7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156107465761074661070c565b60405290565b600082601f83011261075d57600080fd5b813567ffffffffffffffff808211156107785761077861070c565b604051601f8301601f19908116603f011681019082821181831017156107a0576107a061070c565b816040528381528660208588010111156107b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107eb57600080fd5b6040516040810167ffffffffffffffff828210818311171561080f5761080f61070c565b8160405282935084358352602085013591508082111561082e57600080fd5b5061083b8582860161074c565b6020830152505092915050565b60006020828403121561085a57600080fd5b813567ffffffffffffffff8082111561087257600080fd5b908301906101a0828603121561088757600080fd5b61088f610722565b61089883610693565b81526108a660208401610693565b60208201526040830135604082015260608301356060820152608083013560808201526108d560a08401610693565b60a08201526108e660c08401610693565b60c082015260e0830135828111156108fd57600080fd5b610909878286016107d9565b60e08301525061010061091d818501610693565b90820152610120838101358381111561093557600080fd5b6109418882870161074c565b8284015250506101406109558185016106c7565b90820152610160838101358381111561096d57600080fd5b6109798882870161074c565b828401525050610180915061098f828401610693565b91810191909152949350505050565b600080604083850312156109b157600080fd5b82356109bc8161067e565b946020939093013593505050565b6000600182016109ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a17576020818501810151868301820152016109fb565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5660408501826109f1565b949350505050565b60208152610a786020820183516001600160a01b03169052565b60006020830151610a9460408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610acd60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b016101c0860184610a37565b90860151909250610120610b1f868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b3f85846109f1565b945080880151925050610160610b588188018415159052565b80880151925050610180818786030181880152610b7585846109f1565b94508088015192505050610b93828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220bca611242a8026815b84fc06ce7414f9a0771fe120a1bdebef2c9f513c6e0a7f64736f6c63430008130033a264697066735822122092a0644d167505cb0a33644cce05f9570b51516921580cf917a77bd320468fb664736f6c63430008130033","sourceMap":"202:2981:114:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:241;;;;;;:::i;:::-;;:::i;:::-;;;710:25:123;;;698:2;683:18;2940:241:114;;;;;;;;2592:200;;;;;;:::i;:::-;;:::i;:::-;;1824:101:27;;;:::i;2043:214:114:-;;;;;;:::i;:::-;;:::i;1519:518::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5023:55:123;;;5005:74;;4993:2;4978:18;1519:518:114;4859:226:123;1201:85:27;1247:7;1273:6;-1:-1:-1;;;;;1273:6:27;1201:85;;2263:107:114;2345:18;;-1:-1:-1;;;;;2345:18:114;2263:107;;244:24;;;;;;2376:210;;;;;;:::i;:::-;;:::i;515:33::-;;;;;-1:-1:-1;;;;;515:33:114;;;2074:198:27;;;;;;:::i;:::-;;:::i;2798:136:114:-;;;;;;:::i;:::-;-1:-1:-1;;;;;2894:27:114;2871:4;2894:27;;;:15;:27;;;;;:33;;;;2798:136;;;;5671:14:123;;5664:22;5646:41;;5634:2;5619:18;2798:136:114;5506:187:123;2940:241:114;-1:-1:-1;;;;;3031:27:114;;3007:7;3031:27;;;:15;:27;;;;;:33;;;3026:100;;3087:28;;;;;-1:-1:-1;;;;;5023:55:123;;3087:28:114;;;5005:74:123;4978:18;;3087:28:114;;;;;;;;3026:100;-1:-1:-1;;;;;;3143:27:114;;;;;:15;:27;;;;;:31;;;;2940:241::o;2592:200::-;1094:13:27;:11;:13::i;:::-;-1:-1:-1;;;;;2684:27:114;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:44;;-1:-1:-1;;2684:44:114::1;::::0;::::1;;::::0;;::::1;::::0;;;2743:42;;5866:74:123;;;5956:18;;;5949:50;2743:42:114::1;::::0;5839:18:123;2743:42:114::1;;;;;;;;2592:200:::0;;:::o;1824:101:27:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2043:214:114:-;1094:13:27;:11;:13::i;:::-;2123:35:114::1;2142:15;2123:18;:35::i;:::-;2168:18;:36:::0;;-1:-1:-1;;2168:36:114::1;-1:-1:-1::0;;;;;2168:36:114;::::1;::::0;;::::1;::::0;;;2219:31:::1;::::0;5005:74:123;;;2219:31:114::1;::::0;4993:2:123;4978:18;2219:31:114::1;;;;;;;2043:214:::0;:::o;1519:518::-;1625:31;1672:35;1710:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1759:5:114;:7;;1672:61;;-1:-1:-1;1759:5:114;:7;;;:::i;:::-;;;;-1:-1:-1;1743:13:114;;;:23;1810:4;1776:23;;;:39;1826:36;;;;;-1:-1:-1;;;;;1826:28:114;;;;;:36;;1743:6;;1826:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;1872:43:114;;;;;;:15;:43;;;;;;;;;:56;;-1:-1:-1;;1872:56:114;1924:4;1872:56;;;1943:44;;5005:74:123;;;1943:44:114;;4978:18:123;1943:44:114;;;;;;;2012:17;1519:518;-1:-1:-1;;1519:518:114:o;2376:210::-;1094:13:27;:11;:13::i;:::-;-1:-1:-1;;;;;2472:27:114;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:31:::1;;:49:::0;;;2536:43;;9044:74:123;;;9134:18;;9127:34;;;2536:43:114::1;::::0;9017:18:123;2536:43:114::1;8870:297:123::0;2074:198:27;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:27;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:27;;9374:2:123;2154:73:27::1;::::0;::::1;9356:21:123::0;9413:2;9393:18;;;9386:30;9452:34;9432:18;;;9425:62;9523:8;9503:18;;;9496:36;9549:19;;2154:73:27::1;9172:402:123::0;2154:73:27::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:27;719:10:35;1422:23:27;1414:68;;;;-1:-1:-1;;;1414:68:27;;9781:2:123;1414:68:27;;;9763:21:123;;;9800:18;;;9793:30;9859:34;9839:18;;;9832:62;9911:18;;1414:68:27;9579:356:123;2426:187:27;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:27;;;-1:-1:-1;;2534:17:27;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;1380:133:114:-;-1:-1:-1;;;;;1454:22:114;;1450:56;;1485:21;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;14:154:123:-;-1:-1:-1;;;;;93:5:123;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;:::-;548:5;312:247;-1:-1:-1;;;312:247:123:o;746:160::-;811:20;;867:13;;860:21;850:32;;840:60;;896:1;893;886:12;911:315;976:6;984;1037:2;1025:9;1016:7;1012:23;1008:32;1005:52;;;1053:1;1050;1043:12;1005:52;1092:9;1079:23;1111:31;1136:5;1111:31;:::i;:::-;1161:5;-1:-1:-1;1185:35:123;1216:2;1201:18;;1185:35;:::i;:::-;1175:45;;911:315;;;;;:::o;1231:184::-;-1:-1:-1;;;1280:1:123;1273:88;1380:4;1377:1;1370:15;1404:4;1401:1;1394:15;1420:250;1487:2;1481:9;1529:6;1517:19;;1566:18;1551:34;;1587:22;;;1548:62;1545:88;;;1613:18;;:::i;:::-;1649:2;1642:22;1420:250;:::o;1675:719::-;1718:5;1771:3;1764:4;1756:6;1752:17;1748:27;1738:55;;1789:1;1786;1779:12;1738:55;1825:6;1812:20;1851:18;1888:2;1884;1881:10;1878:36;;;1894:18;;:::i;:::-;1969:2;1963:9;1937:2;2023:13;;-1:-1:-1;;2019:22:123;;;2043:2;2015:31;2011:40;1999:53;;;2067:18;;;2087:22;;;2064:46;2061:72;;;2113:18;;:::i;:::-;2153:10;2149:2;2142:22;2188:2;2180:6;2173:18;2234:3;2227:4;2222:2;2214:6;2210:15;2206:26;2203:35;2200:55;;;2251:1;2248;2241:12;2200:55;2315:2;2308:4;2300:6;2296:17;2289:4;2281:6;2277:17;2264:54;2362:1;2355:4;2350:2;2342:6;2338:15;2334:26;2327:37;2382:6;2373:15;;;;;;1675:719;;;;:::o;2399:610::-;2454:5;2502:4;2490:9;2485:3;2481:19;2477:30;2474:50;;;2520:1;2517;2510:12;2474:50;2553:4;2547:11;2597:4;2589:6;2585:17;2621:18;2689:6;2677:10;2674:22;2669:2;2657:10;2654:18;2651:46;2648:72;;;2700:18;;:::i;:::-;2742:10;2736:4;2729:24;2771:6;2762:15;;2814:9;2801:23;2793:6;2786:39;2876:2;2865:9;2861:18;2848:32;2834:46;;2903:2;2895:6;2892:14;2889:34;;;2919:1;2916;2909:12;2889:34;;2956:46;2998:3;2989:6;2978:9;2974:22;2956:46;:::i;:::-;2951:2;2943:6;2939:15;2932:71;;;2399:610;;;;:::o;3014:1708::-;3108:6;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3217:9;3204:23;3246:18;3287:2;3279:6;3276:14;3273:34;;;3303:1;3300;3293:12;3273:34;3326:22;;;;3382:6;3364:16;;;3360:29;3357:49;;;3402:1;3399;3392:12;3357:49;3428:17;;:::i;:::-;3468:22;3487:2;3468:22;:::i;:::-;3461:5;3454:37;3523:31;3550:2;3546;3542:11;3523:31;:::i;:::-;3518:2;3511:5;3507:14;3500:55;3608:2;3604;3600:11;3587:25;3582:2;3575:5;3571:14;3564:49;3666:2;3662;3658:11;3645:25;3640:2;3633:5;3629:14;3622:49;3725:3;3721:2;3717:12;3704:26;3698:3;3691:5;3687:15;3680:51;3764:32;3791:3;3787:2;3783:12;3764:32;:::i;:::-;3758:3;3751:5;3747:15;3740:57;3830:32;3857:3;3853:2;3849:12;3830:32;:::i;:::-;3824:3;3817:5;3813:15;3806:57;3909:3;3905:2;3901:12;3888:26;3939:2;3929:8;3926:16;3923:36;;;3955:1;3952;3945:12;3923:36;3992:54;4038:7;4027:8;4023:2;4019:17;3992:54;:::i;:::-;3986:3;3979:5;3975:15;3968:79;;4066:3;4101:31;4128:2;4124;4120:11;4101:31;:::i;:::-;4085:14;;;4078:55;4152:3;4193:11;;;4180:25;4217:16;;;4214:36;;;4246:1;4243;4236:12;4214:36;4282:45;4319:7;4308:8;4304:2;4300:17;4282:45;:::i;:::-;4277:2;4270:5;4266:14;4259:69;;;4347:3;4382:28;4406:2;4402;4398:11;4382:28;:::i;:::-;4366:14;;;4359:52;4430:3;4471:11;;;4458:25;4495:16;;;4492:36;;;4524:1;4521;4514:12;4492:36;4560:45;4597:7;4586:8;4582:2;4578:17;4560:45;:::i;:::-;4555:2;4548:5;4544:14;4537:69;;;4625:3;4615:13;;4660:31;4687:2;4683;4679:11;4660:31;:::i;:::-;4644:14;;;4637:55;;;;4648:5;3014:1708;-1:-1:-1;;;;3014:1708:123:o;5090:315::-;5158:6;5166;5219:2;5207:9;5198:7;5194:23;5190:32;5187:52;;;5235:1;5232;5225:12;5187:52;5274:9;5261:23;5293:31;5318:5;5293:31;:::i;:::-;5343:5;5395:2;5380:18;;;;5367:32;;-1:-1:-1;;;5090:315:123:o;6010:289::-;6049:3;6070:17;;;6067:197;;-1:-1:-1;;;6117:1:123;6110:88;6221:4;6218:1;6211:15;6249:4;6246:1;6239:15;6067:197;-1:-1:-1;6291:1:123;6280:13;;6010:289::o;6304:423::-;6346:3;6384:5;6378:12;6411:6;6406:3;6399:19;6436:1;6446:162;6460:6;6457:1;6454:13;6446:162;;;6522:4;6578:13;;;6574:22;;6568:29;6550:11;;;6546:20;;6539:59;6475:12;6446:162;;;6450:3;6653:1;6646:4;6637:6;6632:3;6628:16;6624:27;6617:38;6716:4;6709:2;6705:7;6700:2;6692:6;6688:15;6684:29;6679:3;6675:39;6671:50;6664:57;;;6304:423;;;;:::o;6732:252::-;6819:5;6813:12;6808:3;6801:25;6783:3;6872:4;6865:5;6861:16;6855:23;6910:4;6903;6898:3;6894:14;6887:28;6931:47;6972:4;6967:3;6963:14;6949:12;6931:47;:::i;:::-;6924:54;6732:252;-1:-1:-1;;;;6732:252:123:o;6989:1876::-;7188:2;7177:9;7170:21;7200:53;7249:2;7238:9;7234:18;7225:6;7219:13;-1:-1:-1;;;;;4793:54:123;4781:67;;4727:127;7200:53;7151:4;7300:2;7292:6;7288:15;7282:22;7313:52;7361:2;7350:9;7346:18;7332:12;-1:-1:-1;;;;;4793:54:123;4781:67;;4727:127;7313:52;;7419:2;7411:6;7407:15;7401:22;7396:2;7385:9;7381:18;7374:50;7479:2;7471:6;7467:15;7461:22;7455:3;7444:9;7440:19;7433:51;7539:3;7531:6;7527:16;7521:23;7515:3;7504:9;7500:19;7493:52;7594:3;7586:6;7582:16;7576:23;7608:55;7658:3;7647:9;7643:19;7627:14;-1:-1:-1;;;;;4793:54:123;4781:67;;4727:127;7608:55;-1:-1:-1;7712:3:123;7700:16;;7694:23;-1:-1:-1;;;;;4793:54:123;;7776:3;7761:19;;4781:67;7726:55;7830:3;7822:6;7818:16;7812:23;7854:6;7879:3;7918:2;7913;7902:9;7898:18;7891:30;7944:63;8002:3;7991:9;7987:19;7971:14;7944:63;:::i;:::-;8044:15;;;8038:22;7930:77;;-1:-1:-1;8079:3:123;8091:54;8126:18;;;8038:22;-1:-1:-1;;;;;4793:54:123;4781:67;;4727:127;8091:54;8194:2;8186:6;8182:15;8176:22;8154:44;;;8221:2;8217:7;8243:3;8310:2;8298:9;8290:6;8286:22;8282:31;8277:2;8266:9;8262:18;8255:59;8337:41;8371:6;8355:14;8337:41;:::i;:::-;8323:55;;8427:2;8419:6;8415:15;8409:22;8387:44;;;8450:3;8462:51;8509:2;8498:9;8494:18;8478:14;5480:13;5473:21;5461:34;;5410:91;8462:51;8562:2;8554:6;8550:15;8544:22;8522:44;;;8585:3;8652:2;8640:9;8632:6;8628:22;8624:31;8619:2;8608:9;8604:18;8597:59;8679:41;8713:6;8697:14;8679:41;:::i;:::-;8665:55;;8769:2;8761:6;8757:15;8751:22;8729:44;;;;8782:54;8832:2;8821:9;8817:18;8801:14;-1:-1:-1;;;;;4793:54:123;4781:67;;4727:127;8782:54;-1:-1:-1;8853:6:123;;6989:1876;-1:-1:-1;;;;6989:1876:123:o","linkReferences":{}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","nonce()":"affed0e0","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactory.sol\":\"RegistryFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactory.sol":"RegistryFactory"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"id":114} \ No newline at end of file +{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052600060015534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b615326806100836000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106ab565b6101fd565b6040519081526020015b60405180910390f35b61011261010d3660046106df565b61027e565b005b6101126102ed565b61011261012a3660046106ab565b610301565b61014261013d366004610850565b610373565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b6101126101933660046109a6565b610499565b600354610142906001600160a01b031681565b6101126101b93660046106ab565b6104f2565b6101ed6101cc3660046106ab565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081206001015460ff16610262576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090205490565b610286610582565b6001600160a01b038216600081815260026020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102f5610582565b6102ff60006105dc565b565b610309610582565b61031281610639565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161038290610679565b604051809103906000f08015801561039e573d6000803e3d6000fd5b506001805491925060006103b1836109d2565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec90610405908690600401610a66565b600060405180830381600087803b15801561041f57600080fd5b505af1158015610433573d6000803e3d6000fd5b505050506001600160a01b0381166000818152600260209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b6104a1610582565b6001600160a01b038216600081815260026020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102e1565b6104fa610582565b6001600160a01b0381166105765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610259565b61057f816105dc565b50565b6000546001600160a01b031633146102ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610259565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811661057f576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610ba683390190565b6001600160a01b038116811461057f57600080fd5b80356106a681610686565b919050565b6000602082840312156106bd57600080fd5b81356106c881610686565b9392505050565b803580151581146106a657600080fd5b600080604083850312156106f257600080fd5b82356106fd81610686565b915061070b602084016106cf565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff8111828210171561074e5761074e610714565b60405290565b600082601f83011261076557600080fd5b813567ffffffffffffffff8082111561078057610780610714565b604051601f8301601f19908116603f011681019082821181831017156107a8576107a8610714565b816040528381528660208588010111156107c157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107f357600080fd5b6040516040810167ffffffffffffffff828210818311171561081757610817610714565b8160405282935084358352602085013591508082111561083657600080fd5b5061084385828601610754565b6020830152505092915050565b60006020828403121561086257600080fd5b813567ffffffffffffffff8082111561087a57600080fd5b908301906101a0828603121561088f57600080fd5b61089761072a565b6108a08361069b565b81526108ae6020840161069b565b60208201526040830135604082015260608301356060820152608083013560808201526108dd60a0840161069b565b60a08201526108ee60c0840161069b565b60c082015260e08301358281111561090557600080fd5b610911878286016107e1565b60e08301525061010061092581850161069b565b90820152610120838101358381111561093d57600080fd5b61094988828701610754565b82840152505061014061095d8185016106cf565b90820152610160838101358381111561097557600080fd5b61098188828701610754565b828401525050610180915061099782840161069b565b91810191909152949350505050565b600080604083850312156109b957600080fd5b82356109c481610686565b946020939093013593505050565b6000600182016109f257634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a1f57602081850181015186830182015201610a03565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5e60408501826109f9565b949350505050565b60208152610a806020820183516001600160a01b03169052565b60006020830151610a9c60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610ad560c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b096101c0860184610a3f565b90860151909250610120610b27868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b4785846109f9565b945080880151925050610160610b608188018415159052565b80880151925050610180818786030181880152610b7d85846109f9565b94508088015192505050610b9b828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033a2646970667358221220a363e0691a102a9360fc23b19bd0884db829008240f728946afc7dd02e90003364736f6c63430008130033","sourceMap":"202:2981:132:-:0;;;267:1;244:24;;202:2981;;;;;;;;;-1:-1:-1;936:32:61;734:10:81;936:18:61;:32::i;:::-;202:2981:132;;2426:187:61;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:61;;;-1:-1:-1;;;;;;2534:17:61;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;202:2981:132:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106ab565b6101fd565b6040519081526020015b60405180910390f35b61011261010d3660046106df565b61027e565b005b6101126102ed565b61011261012a3660046106ab565b610301565b61014261013d366004610850565b610373565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b6101126101933660046109a6565b610499565b600354610142906001600160a01b031681565b6101126101b93660046106ab565b6104f2565b6101ed6101cc3660046106ab565b6001600160a01b031660009081526002602052604090206001015460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081206001015460ff16610262576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090205490565b610286610582565b6001600160a01b038216600081815260026020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102f5610582565b6102ff60006105dc565b565b610309610582565b61031281610639565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161038290610679565b604051809103906000f08015801561039e573d6000803e3d6000fd5b506001805491925060006103b1836109d2565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec90610405908690600401610a66565b600060405180830381600087803b15801561041f57600080fd5b505af1158015610433573d6000803e3d6000fd5b505050506001600160a01b0381166000818152600260209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b6104a1610582565b6001600160a01b038216600081815260026020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102e1565b6104fa610582565b6001600160a01b0381166105765760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610259565b61057f816105dc565b50565b6000546001600160a01b031633146102ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610259565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b03811661057f576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610ba683390190565b6001600160a01b038116811461057f57600080fd5b80356106a681610686565b919050565b6000602082840312156106bd57600080fd5b81356106c881610686565b9392505050565b803580151581146106a657600080fd5b600080604083850312156106f257600080fd5b82356106fd81610686565b915061070b602084016106cf565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff8111828210171561074e5761074e610714565b60405290565b600082601f83011261076557600080fd5b813567ffffffffffffffff8082111561078057610780610714565b604051601f8301601f19908116603f011681019082821181831017156107a8576107a8610714565b816040528381528660208588010111156107c157600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107f357600080fd5b6040516040810167ffffffffffffffff828210818311171561081757610817610714565b8160405282935084358352602085013591508082111561083657600080fd5b5061084385828601610754565b6020830152505092915050565b60006020828403121561086257600080fd5b813567ffffffffffffffff8082111561087a57600080fd5b908301906101a0828603121561088f57600080fd5b61089761072a565b6108a08361069b565b81526108ae6020840161069b565b60208201526040830135604082015260608301356060820152608083013560808201526108dd60a0840161069b565b60a08201526108ee60c0840161069b565b60c082015260e08301358281111561090557600080fd5b610911878286016107e1565b60e08301525061010061092581850161069b565b90820152610120838101358381111561093d57600080fd5b61094988828701610754565b82840152505061014061095d8185016106cf565b90820152610160838101358381111561097557600080fd5b61098188828701610754565b828401525050610180915061099782840161069b565b91810191909152949350505050565b600080604083850312156109b957600080fd5b82356109c481610686565b946020939093013593505050565b6000600182016109f257634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a1f57602081850181015186830182015201610a03565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5e60408501826109f9565b949350505050565b60208152610a806020820183516001600160a01b03169052565b60006020830151610a9c60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610ad560c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b096101c0860184610a3f565b90860151909250610120610b27868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b4785846109f9565b945080880151925050610160610b608188018415159052565b80880151925050610180818786030181880152610b7d85846109f9565b94508088015192505050610b9b828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033a2646970667358221220a363e0691a102a9360fc23b19bd0884db829008240f728946afc7dd02e90003364736f6c63430008130033","sourceMap":"202:2981:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:241;;;;;;:::i;:::-;;:::i;:::-;;;710:25:144;;;698:2;683:18;2940:241:132;;;;;;;;2592:200;;;;;;:::i;:::-;;:::i;:::-;;1824:101:61;;;:::i;2043:214:132:-;;;;;;:::i;:::-;;:::i;1519:518::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5023:55:144;;;5005:74;;4993:2;4978:18;1519:518:132;4859:226:144;1201:85:61;1247:7;1273:6;-1:-1:-1;;;;;1273:6:61;1201:85;;2263:107:132;2345:18;;-1:-1:-1;;;;;2345:18:132;2263:107;;244:24;;;;;;2376:210;;;;;;:::i;:::-;;:::i;515:33::-;;;;;-1:-1:-1;;;;;515:33:132;;;2074:198:61;;;;;;:::i;:::-;;:::i;2798:136:132:-;;;;;;:::i;:::-;-1:-1:-1;;;;;2894:27:132;2871:4;2894:27;;;:15;:27;;;;;:33;;;;;;2798:136;;;;5671:14:144;;5664:22;5646:41;;5634:2;5619:18;2798:136:132;5506:187:144;2940:241:132;-1:-1:-1;;;;;3031:27:132;;3007:7;3031:27;;;:15;:27;;;;;:33;;;;;3026:100;;3087:28;;;;;-1:-1:-1;;;;;5023:55:144;;3087:28:132;;;5005:74:144;4978:18;;3087:28:132;;;;;;;;3026:100;-1:-1:-1;;;;;;3143:27:132;;;;;:15;:27;;;;;:31;;2940:241::o;2592:200::-;1094:13:61;:11;:13::i;:::-;-1:-1:-1;;;;;2684:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;2684:44:132::1;::::0;::::1;;::::0;;::::1;::::0;;;2743:42;;5866:74:144;;;5956:18;;;5949:50;2743:42:132::1;::::0;5839:18:144;2743:42:132::1;;;;;;;;2592:200:::0;;:::o;1824:101:61:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2043:214:132:-;1094:13:61;:11;:13::i;:::-;2123:35:132::1;2142:15;2123:18;:35::i;:::-;2168:18;:36:::0;;-1:-1:-1;;2168:36:132::1;-1:-1:-1::0;;;;;2168:36:132;::::1;::::0;;::::1;::::0;;;2219:31:::1;::::0;5005:74:144;;;2219:31:132::1;::::0;4993:2:144;4978:18;2219:31:132::1;;;;;;;2043:214:::0;:::o;1519:518::-;1625:31;1672:35;1710:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1759:5:132;:7;;1672:61;;-1:-1:-1;1759:5:132;:7;;;:::i;:::-;;;;-1:-1:-1;1743:13:132;;;:23;1810:4;1776:23;;;:39;1826:36;;;;;-1:-1:-1;;;;;1826:28:132;;;;;:36;;1743:6;;1826:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;1872:43:132;;;;;;:15;:43;;;;;;;;;1924:4;1872:49;;;:56;;-1:-1:-1;;1872:56:132;;;;;;1943:44;;5005:74:144;;;1943:44:132;;4978:18:144;1943:44:132;;;;;;;2012:17;1519:518;-1:-1:-1;;1519:518:132:o;2376:210::-;1094:13:61;:11;:13::i;:::-;-1:-1:-1;;;;;2472:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;2536:43;;9044:74:144;;;9134:18;;9127:34;;;2536:43:132::1;::::0;9017:18:144;2536:43:132::1;8870:297:144::0;2074:198:61;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:61;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:61;;9374:2:144;2154:73:61::1;::::0;::::1;9356:21:144::0;9413:2;9393:18;;;9386:30;9452:34;9432:18;;;9425:62;9523:8;9503:18;;;9496:36;9549:19;;2154:73:61::1;9172:402:144::0;2154:73:61::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:61;734:10:81;1422:23:61;1414:68;;;;-1:-1:-1;;;1414:68:61;;9781:2:144;1414:68:61;;;9763:21:144;;;9800:18;;;9793:30;9859:34;9839:18;;;9832:62;9911:18;;1414:68:61;9579:356:144;2426:187:61;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:61;;;-1:-1:-1;;2534:17:61;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;1380:133:132:-;-1:-1:-1;;;;;1454:22:132;;1450:56;;1485:21;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;14:154:144:-;-1:-1:-1;;;;;93:5:144;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;:::-;548:5;312:247;-1:-1:-1;;;312:247:144:o;746:160::-;811:20;;867:13;;860:21;850:32;;840:60;;896:1;893;886:12;911:315;976:6;984;1037:2;1025:9;1016:7;1012:23;1008:32;1005:52;;;1053:1;1050;1043:12;1005:52;1092:9;1079:23;1111:31;1136:5;1111:31;:::i;:::-;1161:5;-1:-1:-1;1185:35:144;1216:2;1201:18;;1185:35;:::i;:::-;1175:45;;911:315;;;;;:::o;1231:184::-;-1:-1:-1;;;1280:1:144;1273:88;1380:4;1377:1;1370:15;1404:4;1401:1;1394:15;1420:250;1487:2;1481:9;1529:6;1517:19;;1566:18;1551:34;;1587:22;;;1548:62;1545:88;;;1613:18;;:::i;:::-;1649:2;1642:22;1420:250;:::o;1675:719::-;1718:5;1771:3;1764:4;1756:6;1752:17;1748:27;1738:55;;1789:1;1786;1779:12;1738:55;1825:6;1812:20;1851:18;1888:2;1884;1881:10;1878:36;;;1894:18;;:::i;:::-;1969:2;1963:9;1937:2;2023:13;;-1:-1:-1;;2019:22:144;;;2043:2;2015:31;2011:40;1999:53;;;2067:18;;;2087:22;;;2064:46;2061:72;;;2113:18;;:::i;:::-;2153:10;2149:2;2142:22;2188:2;2180:6;2173:18;2234:3;2227:4;2222:2;2214:6;2210:15;2206:26;2203:35;2200:55;;;2251:1;2248;2241:12;2200:55;2315:2;2308:4;2300:6;2296:17;2289:4;2281:6;2277:17;2264:54;2362:1;2355:4;2350:2;2342:6;2338:15;2334:26;2327:37;2382:6;2373:15;;;;;;1675:719;;;;:::o;2399:610::-;2454:5;2502:4;2490:9;2485:3;2481:19;2477:30;2474:50;;;2520:1;2517;2510:12;2474:50;2553:4;2547:11;2597:4;2589:6;2585:17;2621:18;2689:6;2677:10;2674:22;2669:2;2657:10;2654:18;2651:46;2648:72;;;2700:18;;:::i;:::-;2742:10;2736:4;2729:24;2771:6;2762:15;;2814:9;2801:23;2793:6;2786:39;2876:2;2865:9;2861:18;2848:32;2834:46;;2903:2;2895:6;2892:14;2889:34;;;2919:1;2916;2909:12;2889:34;;2956:46;2998:3;2989:6;2978:9;2974:22;2956:46;:::i;:::-;2951:2;2943:6;2939:15;2932:71;;;2399:610;;;;:::o;3014:1708::-;3108:6;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3217:9;3204:23;3246:18;3287:2;3279:6;3276:14;3273:34;;;3303:1;3300;3293:12;3273:34;3326:22;;;;3382:6;3364:16;;;3360:29;3357:49;;;3402:1;3399;3392:12;3357:49;3428:17;;:::i;:::-;3468:22;3487:2;3468:22;:::i;:::-;3461:5;3454:37;3523:31;3550:2;3546;3542:11;3523:31;:::i;:::-;3518:2;3511:5;3507:14;3500:55;3608:2;3604;3600:11;3587:25;3582:2;3575:5;3571:14;3564:49;3666:2;3662;3658:11;3645:25;3640:2;3633:5;3629:14;3622:49;3725:3;3721:2;3717:12;3704:26;3698:3;3691:5;3687:15;3680:51;3764:32;3791:3;3787:2;3783:12;3764:32;:::i;:::-;3758:3;3751:5;3747:15;3740:57;3830:32;3857:3;3853:2;3849:12;3830:32;:::i;:::-;3824:3;3817:5;3813:15;3806:57;3909:3;3905:2;3901:12;3888:26;3939:2;3929:8;3926:16;3923:36;;;3955:1;3952;3945:12;3923:36;3992:54;4038:7;4027:8;4023:2;4019:17;3992:54;:::i;:::-;3986:3;3979:5;3975:15;3968:79;;4066:3;4101:31;4128:2;4124;4120:11;4101:31;:::i;:::-;4085:14;;;4078:55;4152:3;4193:11;;;4180:25;4217:16;;;4214:36;;;4246:1;4243;4236:12;4214:36;4282:45;4319:7;4308:8;4304:2;4300:17;4282:45;:::i;:::-;4277:2;4270:5;4266:14;4259:69;;;4347:3;4382:28;4406:2;4402;4398:11;4382:28;:::i;:::-;4366:14;;;4359:52;4430:3;4471:11;;;4458:25;4495:16;;;4492:36;;;4524:1;4521;4514:12;4492:36;4560:45;4597:7;4586:8;4582:2;4578:17;4560:45;:::i;:::-;4555:2;4548:5;4544:14;4537:69;;;4625:3;4615:13;;4660:31;4687:2;4683;4679:11;4660:31;:::i;:::-;4644:14;;;4637:55;;;;4648:5;3014:1708;-1:-1:-1;;;;3014:1708:144:o;5090:315::-;5158:6;5166;5219:2;5207:9;5198:7;5194:23;5190:32;5187:52;;;5235:1;5232;5225:12;5187:52;5274:9;5261:23;5293:31;5318:5;5293:31;:::i;:::-;5343:5;5395:2;5380:18;;;;5367:32;;-1:-1:-1;;;5090:315:144:o;6010:289::-;6049:3;6070:17;;;6067:197;;-1:-1:-1;;;6117:1:144;6110:88;6221:4;6218:1;6211:15;6249:4;6246:1;6239:15;6067:197;-1:-1:-1;6291:1:144;6280:13;;6010:289::o;6304:423::-;6346:3;6384:5;6378:12;6411:6;6406:3;6399:19;6436:1;6446:162;6460:6;6457:1;6454:13;6446:162;;;6522:4;6578:13;;;6574:22;;6568:29;6550:11;;;6546:20;;6539:59;6475:12;6446:162;;;6450:3;6653:1;6646:4;6637:6;6632:3;6628:16;6624:27;6617:38;6716:4;6709:2;6705:7;6700:2;6692:6;6688:15;6684:29;6679:3;6675:39;6671:50;6664:57;;;6304:423;;;;:::o;6732:252::-;6819:5;6813:12;6808:3;6801:25;6783:3;6872:4;6865:5;6861:16;6855:23;6910:4;6903;6898:3;6894:14;6887:28;6931:47;6972:4;6967:3;6963:14;6949:12;6931:47;:::i;:::-;6924:54;6732:252;-1:-1:-1;;;;6732:252:144:o;6989:1876::-;7188:2;7177:9;7170:21;7200:53;7249:2;7238:9;7234:18;7225:6;7219:13;-1:-1:-1;;;;;4793:54:144;4781:67;;4727:127;7200:53;7151:4;7300:2;7292:6;7288:15;7282:22;7313:52;7361:2;7350:9;7346:18;7332:12;-1:-1:-1;;;;;4793:54:144;4781:67;;4727:127;7313:52;;7419:2;7411:6;7407:15;7401:22;7396:2;7385:9;7381:18;7374:50;7479:2;7471:6;7467:15;7461:22;7455:3;7444:9;7440:19;7433:51;7539:3;7531:6;7527:16;7521:23;7515:3;7504:9;7500:19;7493:52;7594:3;7586:6;7582:16;7576:23;7608:55;7658:3;7647:9;7643:19;7627:14;-1:-1:-1;;;;;4793:54:144;4781:67;;4727:127;7608:55;-1:-1:-1;7712:3:144;7700:16;;7694:23;-1:-1:-1;;;;;4793:54:144;;7776:3;7761:19;;4781:67;7726:55;7830:3;7822:6;7818:16;7812:23;7854:6;7879:3;7918:2;7913;7902:9;7898:18;7891:30;7944:63;8002:3;7991:9;7987:19;7971:14;7944:63;:::i;:::-;8044:15;;;8038:22;7930:77;;-1:-1:-1;8079:3:144;8091:54;8126:18;;;8038:22;-1:-1:-1;;;;;4793:54:144;4781:67;;4727:127;8091:54;8194:2;8186:6;8182:15;8176:22;8154:44;;;8221:2;8217:7;8243:3;8310:2;8298:9;8290:6;8286:22;8282:31;8277:2;8266:9;8262:18;8255:59;8337:41;8371:6;8355:14;8337:41;:::i;:::-;8323:55;;8427:2;8419:6;8415:15;8409:22;8387:44;;;8450:3;8462:51;8509:2;8498:9;8494:18;8478:14;5480:13;5473:21;5461:34;;5410:91;8462:51;8562:2;8554:6;8550:15;8544:22;8522:44;;;8585:3;8652:2;8640:9;8632:6;8628:22;8624:31;8619:2;8608:9;8604:18;8597:59;8679:41;8713:6;8697:14;8679:41;:::i;:::-;8665:55;;8769:2;8761:6;8757:15;8751:22;8729:44;;;;8782:54;8832:2;8821:9;8817:18;8801:14;-1:-1:-1;;;;;4793:54:144;4781:67;;4727:127;8782:54;-1:-1:-1;8853:6:144;;6989:1876;-1:-1:-1;;;;6989:1876:144:o","linkReferences":{}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","nonce()":"affed0e0","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactory.sol\":\"RegistryFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactory.sol":"RegistryFactory"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":55606,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":77924,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77934,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"communityToInfo","offset":0,"slot":"2","type":"t_mapping(t_address,t_struct(CommunityInfo)77929_storage)"},{"astId":77936,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"gardensFeeReceiver","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)77929_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryFactory.CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)77929_storage"},"t_struct(CommunityInfo)77929_storage":{"encoding":"inplace","label":"struct RegistryFactory.CommunityInfo","numberOfBytes":"64","members":[{"astId":77926,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":77928,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactory.sol","id":78150,"exportedSymbols":{"Ownable":[55711],"RegistryCommunity":[77913],"RegistryFactory":[78149]},"nodeType":"SourceUnit","src":"42:3142:132","nodes":[{"id":77915,"nodeType":"PragmaDirective","src":"42:24:132","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":77917,"nodeType":"ImportDirective","src":"68:63:132","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":78150,"sourceUnit":77914,"symbolAliases":[{"foreign":{"id":77916,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"76:17:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77919,"nodeType":"ImportDirective","src":"133:67:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":78150,"sourceUnit":55712,"symbolAliases":[{"foreign":{"id":77918,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55711,"src":"141:7:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78149,"nodeType":"ContractDefinition","src":"202:2981:132","nodes":[{"id":77924,"nodeType":"VariableDeclaration","src":"244:24:132","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"259:5:132","scope":78149,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77922,"name":"uint256","nodeType":"ElementaryTypeName","src":"244:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":77923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":77929,"nodeType":"StructDefinition","src":"351:69:132","nodes":[],"canonicalName":"RegistryFactory.CommunityInfo","members":[{"constant":false,"id":77926,"mutability":"mutable","name":"fee","nameLocation":"390:3:132","nodeType":"VariableDeclaration","scope":77929,"src":"382:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77925,"name":"uint256","nodeType":"ElementaryTypeName","src":"382:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77928,"mutability":"mutable","name":"valid","nameLocation":"408:5:132","nodeType":"VariableDeclaration","scope":77929,"src":"403:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77927,"name":"bool","nodeType":"ElementaryTypeName","src":"403:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"358:13:132","scope":78149,"visibility":"public"},{"id":77934,"nodeType":"VariableDeclaration","src":"426:49:132","nodes":[],"constant":false,"mutability":"mutable","name":"communityToInfo","nameLocation":"460:15:132","scope":78149,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo)"},"typeName":{"id":77933,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":77930,"name":"address","nodeType":"ElementaryTypeName","src":"434:7:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"426:33:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":77932,"nodeType":"UserDefinedTypeName","pathNode":{"id":77931,"name":"CommunityInfo","nameLocations":["445:13:132"],"nodeType":"IdentifierPath","referencedDeclaration":77929,"src":"445:13:132"},"referencedDeclaration":77929,"src":"445:13:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage_ptr","typeString":"struct RegistryFactory.CommunityInfo"}}},"visibility":"internal"},{"id":77936,"nodeType":"VariableDeclaration","src":"515:33:132","nodes":[],"constant":false,"functionSelector":"b8bed901","mutability":"mutable","name":"gardensFeeReceiver","nameLocation":"530:18:132","scope":78149,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77935,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77940,"nodeType":"EventDefinition","src":"721:46:132","nodes":[],"anonymous":false,"eventSelector":"bdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d","name":"FeeReceiverSet","nameLocation":"727:14:132","parameters":{"id":77939,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77938,"indexed":false,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"750:15:132","nodeType":"VariableDeclaration","scope":77940,"src":"742:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77937,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"741:25:132"}},{"id":77946,"nodeType":"EventDefinition","src":"772:66:132","nodes":[],"anonymous":false,"eventSelector":"a1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c","name":"ProtocolFeeSet","nameLocation":"778:14:132","parameters":{"id":77945,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77942,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"801:10:132","nodeType":"VariableDeclaration","scope":77946,"src":"793:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77941,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77944,"indexed":false,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"821:15:132","nodeType":"VariableDeclaration","scope":77946,"src":"813:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77943,"name":"uint256","nodeType":"ElementaryTypeName","src":"813:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:45:132"}},{"id":77950,"nodeType":"EventDefinition","src":"843:51:132","nodes":[],"anonymous":false,"eventSelector":"b4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29","name":"CommunityCreated","nameLocation":"849:16:132","parameters":{"id":77949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77948,"indexed":false,"mutability":"mutable","name":"_registryCommunity","nameLocation":"874:18:132","nodeType":"VariableDeclaration","scope":77950,"src":"866:26:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77947,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"865:28:132"}},{"id":77956,"nodeType":"EventDefinition","src":"899:62:132","nodes":[],"anonymous":false,"eventSelector":"ecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f62","name":"CommunityValiditySet","nameLocation":"905:20:132","parameters":{"id":77955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77952,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"934:10:132","nodeType":"VariableDeclaration","scope":77956,"src":"926:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77951,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77954,"indexed":false,"mutability":"mutable","name":"_isValid","nameLocation":"951:8:132","nodeType":"VariableDeclaration","scope":77956,"src":"946:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77953,"name":"bool","nodeType":"ElementaryTypeName","src":"946:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"925:35:132"}},{"id":77960,"nodeType":"ErrorDefinition","src":"1133:43:132","nodes":[],"errorSelector":"f5a6943d","name":"CommunityInvalid","nameLocation":"1139:16:132","parameters":{"id":77959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77958,"mutability":"mutable","name":"_community","nameLocation":"1164:10:132","nodeType":"VariableDeclaration","scope":77960,"src":"1156:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77957,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1155:20:132"}},{"id":77962,"nodeType":"ErrorDefinition","src":"1181:28:132","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"1187:19:132","parameters":{"id":77961,"nodeType":"ParameterList","parameters":[],"src":"1206:2:132"}},{"id":77978,"nodeType":"FunctionDefinition","src":"1380:133:132","nodes":[],"body":{"id":77977,"nodeType":"Block","src":"1440:73:132","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77967,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77964,"src":"1454:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77970,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1474:1:132","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":77969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1466:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77968,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:132","typeDescriptions":{}}},"id":77971,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1466:10:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1454:22:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77976,"nodeType":"IfStatement","src":"1450:56:132","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77973,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77962,"src":"1485:19:132","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1485:21:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77975,"nodeType":"RevertStatement","src":"1478:28:132"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"1389:18:132","parameters":{"id":77965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77964,"mutability":"mutable","name":"_address","nameLocation":"1416:8:132","nodeType":"VariableDeclaration","scope":77978,"src":"1408:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77963,"name":"address","nodeType":"ElementaryTypeName","src":"1408:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1407:18:132"},"returnParameters":{"id":77966,"nodeType":"ParameterList","parameters":[],"src":"1440:0:132"},"scope":78149,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":78039,"nodeType":"FunctionDefinition","src":"1519:518:132","nodes":[],"body":{"id":78038,"nodeType":"Block","src":"1662:375:132","nodes":[],"statements":[{"assignments":[77988],"declarations":[{"constant":false,"id":77988,"mutability":"mutable","name":"registryCommunity","nameLocation":"1690:17:132","nodeType":"VariableDeclaration","scope":78038,"src":"1672:35:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"},"typeName":{"id":77987,"nodeType":"UserDefinedTypeName","pathNode":{"id":77986,"name":"RegistryCommunity","nameLocations":["1672:17:132"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"1672:17:132"},"referencedDeclaration":77913,"src":"1672:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"visibility":"internal"}],"id":77993,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77991,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1710:21:132","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegistryCommunity_$77913_$","typeString":"function () returns (contract RegistryCommunity)"},"typeName":{"id":77990,"nodeType":"UserDefinedTypeName","pathNode":{"id":77989,"name":"RegistryCommunity","nameLocations":["1714:17:132"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"1714:17:132"},"referencedDeclaration":77913,"src":"1714:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}},"id":77992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:23:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"VariableDeclarationStatement","src":"1672:61:132"},{"expression":{"id":77999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77994,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77981,"src":"1743:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":77996,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1750:6:132","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76328,"src":"1743:13:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1759:7:132","subExpression":{"id":77997,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77924,"src":"1759:5:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1743:23:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78000,"nodeType":"ExpressionStatement","src":"1743:23:132"},{"expression":{"id":78008,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78001,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77981,"src":"1776:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":78003,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1783:16:132","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76330,"src":"1776:23:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78006,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1810:4:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryFactory_$78149","typeString":"contract RegistryFactory"}],"id":78005,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1802:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78004,"name":"address","nodeType":"ElementaryTypeName","src":"1802:7:132","typeDescriptions":{}}},"id":78007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:13:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1776:39:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78009,"nodeType":"ExpressionStatement","src":"1776:39:132"},{"expression":{"arguments":[{"id":78013,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77981,"src":"1855:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}],"expression":{"id":78010,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"1826:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":78012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1844:10:132","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"1826:28:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_InitializeParams_$76346_memory_ptr_$returns$__$","typeString":"function (struct RegistryCommunity.InitializeParams memory) external"}},"id":78014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:36:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78015,"nodeType":"ExpressionStatement","src":"1826:36:132"},{"expression":{"id":78024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78016,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77934,"src":"1872:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":78021,"indexExpression":{"arguments":[{"id":78019,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"1896:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":78018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1888:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78017,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:132","typeDescriptions":{}}},"id":78020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1872:43:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":78022,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1916:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77928,"src":"1872:49:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78023,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1924:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1872:56:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78025,"nodeType":"ExpressionStatement","src":"1872:56:132"},{"eventCall":{"arguments":[{"arguments":[{"id":78029,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"1968:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":78028,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78027,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:132","typeDescriptions":{}}},"id":78030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78026,"name":"CommunityCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77950,"src":"1943:16:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1943:44:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78032,"nodeType":"EmitStatement","src":"1938:49:132"},{"expression":{"arguments":[{"id":78035,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77988,"src":"2012:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":78034,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2004:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78033,"name":"address","nodeType":"ElementaryTypeName","src":"2004:7:132","typeDescriptions":{}}},"id":78036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2004:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":77985,"id":78037,"nodeType":"Return","src":"1997:33:132"}]},"functionSelector":"8a16135f","implemented":true,"kind":"function","modifiers":[],"name":"createRegistry","nameLocation":"1528:14:132","parameters":{"id":77982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77981,"mutability":"mutable","name":"params","nameLocation":"1585:6:132","nodeType":"VariableDeclaration","scope":78039,"src":"1543:48:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":77980,"nodeType":"UserDefinedTypeName","pathNode":{"id":77979,"name":"RegistryCommunity.InitializeParams","nameLocations":["1543:17:132","1561:16:132"],"nodeType":"IdentifierPath","referencedDeclaration":76346,"src":"1543:34:132"},"referencedDeclaration":76346,"src":"1543:34:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"1542:50:132"},"returnParameters":{"id":77985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77984,"mutability":"mutable","name":"_createdRegistryAddress","nameLocation":"1633:23:132","nodeType":"VariableDeclaration","scope":78039,"src":"1625:31:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77983,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1624:33:132"},"scope":78149,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78059,"nodeType":"FunctionDefinition","src":"2043:214:132","nodes":[],"body":{"id":78058,"nodeType":"Block","src":"2113:144:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":78047,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78041,"src":"2142:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78046,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77978,"src":"2123:18:132","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:35:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78049,"nodeType":"ExpressionStatement","src":"2123:35:132"},{"expression":{"id":78052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78050,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77936,"src":"2168:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78051,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78041,"src":"2189:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2168:36:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78053,"nodeType":"ExpressionStatement","src":"2168:36:132"},{"eventCall":{"arguments":[{"id":78055,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78041,"src":"2234:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78054,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77940,"src":"2219:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78056,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:31:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78057,"nodeType":"EmitStatement","src":"2214:36:132"}]},"functionSelector":"8279c7db","implemented":true,"kind":"function","modifiers":[{"id":78044,"kind":"modifierInvocation","modifierName":{"id":78043,"name":"onlyOwner","nameLocations":["2103:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":55630,"src":"2103:9:132"},"nodeType":"ModifierInvocation","src":"2103:9:132"}],"name":"setReceiverAddress","nameLocation":"2052:18:132","parameters":{"id":78042,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78041,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"2079:15:132","nodeType":"VariableDeclaration","scope":78059,"src":"2071:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78040,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2070:25:132"},"returnParameters":{"id":78045,"nodeType":"ParameterList","parameters":[],"src":"2113:0:132"},"scope":78149,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78067,"nodeType":"FunctionDefinition","src":"2263:107:132","nodes":[],"body":{"id":78066,"nodeType":"Block","src":"2328:42:132","nodes":[],"statements":[{"expression":{"id":78064,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77936,"src":"2345:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78063,"id":78065,"nodeType":"Return","src":"2338:25:132"}]},"functionSelector":"987435be","implemented":true,"kind":"function","modifiers":[],"name":"getGardensFeeReceiver","nameLocation":"2272:21:132","parameters":{"id":78060,"nodeType":"ParameterList","parameters":[],"src":"2293:2:132"},"returnParameters":{"id":78063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78067,"src":"2319:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78061,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:9:132"},"scope":78149,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78089,"nodeType":"FunctionDefinition","src":"2376:210:132","nodes":[],"body":{"id":78088,"nodeType":"Block","src":"2462:124:132","nodes":[],"statements":[{"expression":{"id":78081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78076,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77934,"src":"2472:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":78078,"indexExpression":{"id":78077,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78069,"src":"2488:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2472:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":78079,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2500:3:132","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":77926,"src":"2472:31:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78080,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78071,"src":"2506:15:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2472:49:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78082,"nodeType":"ExpressionStatement","src":"2472:49:132"},{"eventCall":{"arguments":[{"id":78084,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78069,"src":"2551:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78085,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78071,"src":"2563:15:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78083,"name":"ProtocolFeeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"2536:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":78086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:43:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78087,"nodeType":"EmitStatement","src":"2531:48:132"}]},"functionSelector":"b5b3ca2c","implemented":true,"kind":"function","modifiers":[{"id":78074,"kind":"modifierInvocation","modifierName":{"id":78073,"name":"onlyOwner","nameLocations":["2452:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":55630,"src":"2452:9:132"},"nodeType":"ModifierInvocation","src":"2452:9:132"}],"name":"setProtocolFee","nameLocation":"2385:14:132","parameters":{"id":78072,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78069,"mutability":"mutable","name":"_community","nameLocation":"2408:10:132","nodeType":"VariableDeclaration","scope":78089,"src":"2400:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78068,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78071,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"2428:15:132","nodeType":"VariableDeclaration","scope":78089,"src":"2420:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78070,"name":"uint256","nodeType":"ElementaryTypeName","src":"2420:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2399:45:132"},"returnParameters":{"id":78075,"nodeType":"ParameterList","parameters":[],"src":"2462:0:132"},"scope":78149,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78111,"nodeType":"FunctionDefinition","src":"2592:200:132","nodes":[],"body":{"id":78110,"nodeType":"Block","src":"2674:118:132","nodes":[],"statements":[{"expression":{"id":78103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78098,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77934,"src":"2684:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":78100,"indexExpression":{"id":78099,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78091,"src":"2700:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":78101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2712:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77928,"src":"2684:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78102,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78093,"src":"2720:8:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2684:44:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78104,"nodeType":"ExpressionStatement","src":"2684:44:132"},{"eventCall":{"arguments":[{"id":78106,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78091,"src":"2764:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78107,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78093,"src":"2776:8:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78105,"name":"CommunityValiditySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77956,"src":"2743:20:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":78108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:42:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78109,"nodeType":"EmitStatement","src":"2738:47:132"}]},"functionSelector":"5a2c8ace","implemented":true,"kind":"function","modifiers":[{"id":78096,"kind":"modifierInvocation","modifierName":{"id":78095,"name":"onlyOwner","nameLocations":["2664:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":55630,"src":"2664:9:132"},"nodeType":"ModifierInvocation","src":"2664:9:132"}],"name":"setCommunityValidity","nameLocation":"2601:20:132","parameters":{"id":78094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78091,"mutability":"mutable","name":"_community","nameLocation":"2630:10:132","nodeType":"VariableDeclaration","scope":78111,"src":"2622:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78090,"name":"address","nodeType":"ElementaryTypeName","src":"2622:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78093,"mutability":"mutable","name":"_isValid","nameLocation":"2647:8:132","nodeType":"VariableDeclaration","scope":78111,"src":"2642:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78092,"name":"bool","nodeType":"ElementaryTypeName","src":"2642:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2621:35:132"},"returnParameters":{"id":78097,"nodeType":"ParameterList","parameters":[],"src":"2674:0:132"},"scope":78149,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78124,"nodeType":"FunctionDefinition","src":"2798:136:132","nodes":[],"body":{"id":78123,"nodeType":"Block","src":"2877:57:132","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":78118,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77934,"src":"2894:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":78120,"indexExpression":{"id":78119,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78113,"src":"2910:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2894:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":78121,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2922:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77928,"src":"2894:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78117,"id":78122,"nodeType":"Return","src":"2887:40:132"}]},"functionSelector":"f5016b5e","implemented":true,"kind":"function","modifiers":[],"name":"getCommunityValidity","nameLocation":"2807:20:132","parameters":{"id":78114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78113,"mutability":"mutable","name":"_community","nameLocation":"2836:10:132","nodeType":"VariableDeclaration","scope":78124,"src":"2828:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78112,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2827:20:132"},"returnParameters":{"id":78117,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78116,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78124,"src":"2871:4:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78115,"name":"bool","nodeType":"ElementaryTypeName","src":"2871:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2870:6:132"},"scope":78149,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":78148,"nodeType":"FunctionDefinition","src":"2940:241:132","nodes":[],"body":{"id":78147,"nodeType":"Block","src":"3016:165:132","nodes":[],"statements":[{"condition":{"id":78135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3030:34:132","subExpression":{"expression":{"baseExpression":{"id":78131,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77934,"src":"3031:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":78133,"indexExpression":{"id":78132,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78126,"src":"3047:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3031:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":78134,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3059:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77928,"src":"3031:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78141,"nodeType":"IfStatement","src":"3026:100:132","trueBody":{"id":78140,"nodeType":"Block","src":"3066:60:132","statements":[{"errorCall":{"arguments":[{"id":78137,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78126,"src":"3104:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78136,"name":"CommunityInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"3087:16:132","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78138,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:28:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78139,"nodeType":"RevertStatement","src":"3080:35:132"}]}},{"expression":{"expression":{"baseExpression":{"id":78142,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77934,"src":"3143:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77929_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":78144,"indexExpression":{"id":78143,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78126,"src":"3159:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3143:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77929_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":78145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3171:3:132","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":77926,"src":"3143:31:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78130,"id":78146,"nodeType":"Return","src":"3136:38:132"}]},"functionSelector":"0a992e0c","implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"2949:14:132","parameters":{"id":78127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78126,"mutability":"mutable","name":"_community","nameLocation":"2972:10:132","nodeType":"VariableDeclaration","scope":78148,"src":"2964:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78125,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2963:20:132"},"returnParameters":{"id":78130,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78129,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78148,"src":"3007:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78128,"name":"uint256","nodeType":"ElementaryTypeName","src":"3007:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3006:9:132"},"scope":78149,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77920,"name":"Ownable","nameLocations":["230:7:132"],"nodeType":"IdentifierPath","referencedDeclaration":55711,"src":"230:7:132"},"id":77921,"nodeType":"InheritanceSpecifier","src":"230:7:132"}],"canonicalName":"RegistryFactory","contractDependencies":[77913],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[78149,55711,57959],"name":"RegistryFactory","nameLocation":"211:15:132","scope":78150,"usedErrors":[77960,77962]}],"license":"AGPL-3.0-only"},"id":132} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json b/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json new file mode 100644 index 000000000..14ea8283b --- /dev/null +++ b/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_gardensFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b50608051615f6261004c600039600081816103ab0152818161043001528181610526015281816105ab01526106950152615f626000f3fe6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063b8bed90111610059578063b8bed90114610274578063c4d66de814610294578063f2fde38b146102b4578063f5016b5e146102d457600080fd5b80638da5cb5b14610202578063987435be14610220578063affed0e01461023e578063b5b3ca2c1461025457600080fd5b80635a2c8ace116100c65780635a2c8ace14610175578063715018a6146101955780638279c7db146101aa5780638a16135f146101ca57600080fd5b80630a992e0c146100f85780633659cfe61461012b5780634f1ef2861461014d57806352d1902d14610160575b600080fd5b34801561010457600080fd5b50610118610113366004611210565b610320565b6040519081526020015b60405180910390f35b34801561013757600080fd5b5061014b610146366004611210565b6103a1565b005b61014b61015b3660046112e3565b61051c565b34801561016c57600080fd5b50610118610688565b34801561018157600080fd5b5061014b610190366004611357565b61074d565b3480156101a157600080fd5b5061014b6107bc565b3480156101b657600080fd5b5061014b6101c5366004611210565b6107d0565b3480156101d657600080fd5b506101ea6101e536600461141b565b610842565b6040516001600160a01b039091168152602001610122565b34801561020e57600080fd5b506033546001600160a01b03166101ea565b34801561022c57600080fd5b506067546001600160a01b03166101ea565b34801561024a57600080fd5b5061011860655481565b34801561026057600080fd5b5061014b61026f366004611571565b610968565b34801561028057600080fd5b506067546101ea906001600160a01b031681565b3480156102a057600080fd5b5061014b6102af366004611210565b6109c1565b3480156102c057600080fd5b5061014b6102cf366004611210565b610b3d565b3480156102e057600080fd5b506103106102ef366004611210565b6001600160a01b031660009081526066602052604090206001015460ff1690565b6040519015158152602001610122565b6001600160a01b03811660009081526066602052604081206001015460ff16610385576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146104f45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b6104fd81610bca565b6040805160008082526020820190925261051991839190610bd2565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105a95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106047f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461066f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b61067882610bca565b61068482826001610bd2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107285760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161037c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610755610d77565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6107c4610d77565b6107ce6000610dd1565b565b6107d8610d77565b6107e181610e30565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b600080604051610851906111dd565b604051809103906000f08015801561086d573d6000803e3d6000fd5b506065805491925060006108808361159d565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906108d4908690600401611633565b600060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610970610d77565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107b0565b600054610100900460ff16158080156109e15750600054600160ff909116105b806109fb5750303b1580156109fb575060005460ff166001145b610a6d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037c565b6000805460ff191660011790558015610a90576000805461ff0019166101001790555b610a98610e70565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a18015610684576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107b0565b610b45610d77565b6001600160a01b038116610bc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037c565b61051981610dd1565b610519610d77565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c0a57610c0583610ee3565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c64575060408051601f3d908101601f19168201909252610c6191810190611772565b60015b610cd65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161037c565b50610c05838383610fae565b6033546001600160a01b031633146107ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037c565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610519576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16610edb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce610fd9565b6001600160a01b0381163b610f605760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610fb78361104d565b600082511180610fc45750805b15610c0557610fd3838361108d565b50505050565b600054610100900460ff166110445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce33610dd1565b61105681610ee3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110b3838360405180606001604052806027815260200162005f06602791396110ba565b9392505050565b6060600080856001600160a01b0316856040516110d7919061178b565b600060405180830381855af49150503d8060008114611112576040519150601f19603f3d011682016040523d82523d6000602084013e611117565b606091505b509150915061112886838387611132565b9695505050505050565b606083156111a157825160000361119a576001600160a01b0385163b61119a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161037c565b50816111ab565b6111ab83836111b3565b949350505050565b8151156111c35781518083602001fd5b8060405162461bcd60e51b815260040161037c91906117a7565b61474b80620017bb83390190565b6001600160a01b038116811461051957600080fd5b803561120b816111eb565b919050565b60006020828403121561122257600080fd5b81356110b3816111eb565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156112675761126761122d565b60405290565b600067ffffffffffffffff808411156112885761128861122d565b604051601f8501601f19908116603f011681019082821181831017156112b0576112b061122d565b816040528093508581528686860111156112c957600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156112f657600080fd5b8235611301816111eb565b9150602083013567ffffffffffffffff81111561131d57600080fd5b8301601f8101851361132e57600080fd5b61133d8582356020840161126d565b9150509250929050565b8035801515811461120b57600080fd5b6000806040838503121561136a57600080fd5b8235611375816111eb565b915061138360208401611347565b90509250929050565b600082601f83011261139d57600080fd5b6110b38383356020850161126d565b6000604082840312156113be57600080fd5b6040516040810167ffffffffffffffff82821081831117156113e2576113e261122d565b8160405282935084358352602085013591508082111561140157600080fd5b5061140e8582860161138c565b6020830152505092915050565b60006020828403121561142d57600080fd5b813567ffffffffffffffff8082111561144557600080fd5b908301906101a0828603121561145a57600080fd5b611462611243565b61146b83611200565b815261147960208401611200565b60208201526040830135604082015260608301356060820152608083013560808201526114a860a08401611200565b60a08201526114b960c08401611200565b60c082015260e0830135828111156114d057600080fd5b6114dc878286016113ac565b60e0830152506101006114f0818501611200565b90820152610120838101358381111561150857600080fd5b6115148882870161138c565b828401525050610140611528818501611347565b90820152610160838101358381111561154057600080fd5b61154c8882870161138c565b8284015250506101809150611562828401611200565b91810191909152949350505050565b6000806040838503121561158457600080fd5b823561158f816111eb565b946020939093013593505050565b6000600182016115bd57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156115df5781810151838201526020016115c7565b50506000910152565b600081518084526116008160208601602086016115c4565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526111ab60408501826115e8565b6020815261164d6020820183516001600160a01b03169052565b6000602083015161166960408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516116a260c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526116d66101c0860184611614565b908601519092506101206116f4868201836001600160a01b03169052565b80870151915050601f1961014081878603018188015261171485846115e8565b94508088015192505061016061172d8188018415159052565b8088015192505061018081878603018188015261174a85846115e8565b94508088015192505050611768828601826001600160a01b03169052565b5090949350505050565b60006020828403121561178457600080fd5b5051919050565b6000825161179d8184602087016115c4565b9190910192915050565b6020815260006110b360208301846115e856fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c5b75f3eb582053759e285c3a0c900b4ce117f06063a5800f20e486593a6466e64736f6c63430008130033","sourceMap":"499:3290:133:-:0;;;1088:4:68;1045:48;;499:3290:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063b8bed90111610059578063b8bed90114610274578063c4d66de814610294578063f2fde38b146102b4578063f5016b5e146102d457600080fd5b80638da5cb5b14610202578063987435be14610220578063affed0e01461023e578063b5b3ca2c1461025457600080fd5b80635a2c8ace116100c65780635a2c8ace14610175578063715018a6146101955780638279c7db146101aa5780638a16135f146101ca57600080fd5b80630a992e0c146100f85780633659cfe61461012b5780634f1ef2861461014d57806352d1902d14610160575b600080fd5b34801561010457600080fd5b50610118610113366004611210565b610320565b6040519081526020015b60405180910390f35b34801561013757600080fd5b5061014b610146366004611210565b6103a1565b005b61014b61015b3660046112e3565b61051c565b34801561016c57600080fd5b50610118610688565b34801561018157600080fd5b5061014b610190366004611357565b61074d565b3480156101a157600080fd5b5061014b6107bc565b3480156101b657600080fd5b5061014b6101c5366004611210565b6107d0565b3480156101d657600080fd5b506101ea6101e536600461141b565b610842565b6040516001600160a01b039091168152602001610122565b34801561020e57600080fd5b506033546001600160a01b03166101ea565b34801561022c57600080fd5b506067546001600160a01b03166101ea565b34801561024a57600080fd5b5061011860655481565b34801561026057600080fd5b5061014b61026f366004611571565b610968565b34801561028057600080fd5b506067546101ea906001600160a01b031681565b3480156102a057600080fd5b5061014b6102af366004611210565b6109c1565b3480156102c057600080fd5b5061014b6102cf366004611210565b610b3d565b3480156102e057600080fd5b506103106102ef366004611210565b6001600160a01b031660009081526066602052604090206001015460ff1690565b6040519015158152602001610122565b6001600160a01b03811660009081526066602052604081206001015460ff16610385576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146104f45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b6104fd81610bca565b6040805160008082526020820190925261051991839190610bd2565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105a95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106047f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461066f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b61067882610bca565b61068482826001610bd2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107285760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161037c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610755610d77565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6107c4610d77565b6107ce6000610dd1565b565b6107d8610d77565b6107e181610e30565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b600080604051610851906111dd565b604051809103906000f08015801561086d573d6000803e3d6000fd5b506065805491925060006108808361159d565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906108d4908690600401611633565b600060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610970610d77565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107b0565b600054610100900460ff16158080156109e15750600054600160ff909116105b806109fb5750303b1580156109fb575060005460ff166001145b610a6d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037c565b6000805460ff191660011790558015610a90576000805461ff0019166101001790555b610a98610e70565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a18015610684576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107b0565b610b45610d77565b6001600160a01b038116610bc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037c565b61051981610dd1565b610519610d77565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c0a57610c0583610ee3565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c64575060408051601f3d908101601f19168201909252610c6191810190611772565b60015b610cd65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161037c565b50610c05838383610fae565b6033546001600160a01b031633146107ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037c565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610519576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16610edb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce610fd9565b6001600160a01b0381163b610f605760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610fb78361104d565b600082511180610fc45750805b15610c0557610fd3838361108d565b50505050565b600054610100900460ff166110445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce33610dd1565b61105681610ee3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110b3838360405180606001604052806027815260200162005f06602791396110ba565b9392505050565b6060600080856001600160a01b0316856040516110d7919061178b565b600060405180830381855af49150503d8060008114611112576040519150601f19603f3d011682016040523d82523d6000602084013e611117565b606091505b509150915061112886838387611132565b9695505050505050565b606083156111a157825160000361119a576001600160a01b0385163b61119a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161037c565b50816111ab565b6111ab83836111b3565b949350505050565b8151156111c35781518083602001fd5b8060405162461bcd60e51b815260040161037c91906117a7565b61474b80620017bb83390190565b6001600160a01b038116811461051957600080fd5b803561120b816111eb565b919050565b60006020828403121561122257600080fd5b81356110b3816111eb565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156112675761126761122d565b60405290565b600067ffffffffffffffff808411156112885761128861122d565b604051601f8501601f19908116603f011681019082821181831017156112b0576112b061122d565b816040528093508581528686860111156112c957600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156112f657600080fd5b8235611301816111eb565b9150602083013567ffffffffffffffff81111561131d57600080fd5b8301601f8101851361132e57600080fd5b61133d8582356020840161126d565b9150509250929050565b8035801515811461120b57600080fd5b6000806040838503121561136a57600080fd5b8235611375816111eb565b915061138360208401611347565b90509250929050565b600082601f83011261139d57600080fd5b6110b38383356020850161126d565b6000604082840312156113be57600080fd5b6040516040810167ffffffffffffffff82821081831117156113e2576113e261122d565b8160405282935084358352602085013591508082111561140157600080fd5b5061140e8582860161138c565b6020830152505092915050565b60006020828403121561142d57600080fd5b813567ffffffffffffffff8082111561144557600080fd5b908301906101a0828603121561145a57600080fd5b611462611243565b61146b83611200565b815261147960208401611200565b60208201526040830135604082015260608301356060820152608083013560808201526114a860a08401611200565b60a08201526114b960c08401611200565b60c082015260e0830135828111156114d057600080fd5b6114dc878286016113ac565b60e0830152506101006114f0818501611200565b90820152610120838101358381111561150857600080fd5b6115148882870161138c565b828401525050610140611528818501611347565b90820152610160838101358381111561154057600080fd5b61154c8882870161138c565b8284015250506101809150611562828401611200565b91810191909152949350505050565b6000806040838503121561158457600080fd5b823561158f816111eb565b946020939093013593505050565b6000600182016115bd57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156115df5781810151838201526020016115c7565b50506000910152565b600081518084526116008160208601602086016115c4565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526111ab60408501826115e8565b6020815261164d6020820183516001600160a01b03169052565b6000602083015161166960408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516116a260c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526116d66101c0860184611614565b908601519092506101206116f4868201836001600160a01b03169052565b80870151915050601f1961014081878603018188015261171485846115e8565b94508088015192505061016061172d8188018415159052565b8088015192505061018081878603018188015261174a85846115e8565b94508088015192505050611768828601826001600160a01b03169052565b5090949350505050565b60006020828403121561178457600080fd5b5051919050565b6000825161179d8184602087016115c4565b9190910192915050565b6020815260006110b360208301846115e856fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c5b75f3eb582053759e285c3a0c900b4ce117f06063a5800f20e486593a6466e64736f6c63430008130033","sourceMap":"499:3290:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:249;;;;;;;;;;-1:-1:-1;3434:249:133;;;;;:::i;:::-;;:::i;:::-;;;710:25:144;;;698:2;683:18;3434:249:133;;;;;;;;3143:195:68;;;;;;;;;;-1:-1:-1;3143:195:68;;;;;:::i;:::-;;:::i;:::-;;3657:220;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;3070:208:133:-;;;;;;;;;;-1:-1:-1;3070:208:133;;;;;:::i;:::-;;:::i;2085:101:47:-;;;;;;;;;;;;;:::i;2497:222:133:-;;;;;;;;;;-1:-1:-1;2497:222:133;;;;;:::i;:::-;;:::i;1957:534::-;;;;;;;;;;-1:-1:-1;1957:534:133;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5932:55:144;;;5914:74;;5902:2;5887:18;1957:534:133;5768:226:144;1462:85:47;;;;;;;;;;-1:-1:-1;1534:6:47;;-1:-1:-1;;;;;1534:6:47;1462:85;;2725:115:133;;;;;;;;;;-1:-1:-1;2815:18:133;;-1:-1:-1;;;;;2815:18:133;2725:115;;573:20;;;;;;;;;;;;;;;;2846:218;;;;;;;;;;-1:-1:-1;2846:218:133;;;;;:::i;:::-;;:::i;655:33::-;;;;;;;;;;-1:-1:-1;655:33:133;;;;-1:-1:-1;;;;;655:33:133;;;1659:292;;;;;;;;;;-1:-1:-1;1659:292:133;;;;;:::i;:::-;;:::i;2335:198:47:-;;;;;;;;;;-1:-1:-1;2335:198:47;;;;;:::i;:::-;;:::i;3284:144:133:-;;;;;;;;;;-1:-1:-1;3284:144:133;;;;;:::i;:::-;-1:-1:-1;;;;;3388:27:133;3365:4;3388:27;;;:15;:27;;;;;:33;;;;;;3284:144;;;;6580:14:144;;6573:22;6555:41;;6543:2;6528:18;3284:144:133;6415:187:144;3434:249:133;-1:-1:-1;;;;;3533:27:133;;3509:7;3533:27;;;:15;:27;;;;;:33;;;;;3528:100;;3589:28;;;;;-1:-1:-1;;;;;5932:55:144;;3589:28:133;;;5914:74:144;5887:18;;3589:28:133;;;;;;;;3528:100;-1:-1:-1;;;;;;3645:27:133;;;;;:15;:27;;;;;:31;;3434:249::o;3143:195:68:-;-1:-1:-1;;;;;1654:6:68;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:68;;6809:2:144;1629:80:68;;;6791:21:144;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:144;;;6931:42;6990:19;;1629:80:68;6607:408:144;1629:80:68;1751:6;-1:-1:-1;;;;;1727:30:68;:20;1030:66:65;1254:54;-1:-1:-1;;;;;1254:54:65;;1175:140;1727:20:68;-1:-1:-1;;;;;1727:30:68;;1719:87;;;;-1:-1:-1;;;1719:87:68;;7222:2:144;1719:87:68;;;7204:21:144;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:144;;;7344:42;7403:19;;1719:87:68;7020:408:144;1719:87:68;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;:::-;3143:195:::0;:::o;3657:220::-;-1:-1:-1;;;;;1654:6:68;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:68;;6809:2:144;1629:80:68;;;6791:21:144;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:144;;;6931:42;6990:19;;1629:80:68;6607:408:144;1629:80:68;1751:6;-1:-1:-1;;;;;1727:30:68;:20;1030:66:65;1254:54;-1:-1:-1;;;;;1254:54:65;;1175:140;1727:20:68;-1:-1:-1;;;;;1727:30:68;;1719:87;;;;-1:-1:-1;;;1719:87:68;;7222:2:144;1719:87:68;;;7204:21:144;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:144;;;7344:42;7403:19;;1719:87:68;7020:408:144;1719:87:68;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;:::-;3657:220:::0;;:::o;2762:131::-;2840:7;2080:4;-1:-1:-1;;;;;2089:6:68;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:68;;7635:2:144;2064:92:68;;;7617:21:144;7674:2;7654:18;;;7647:30;7713:34;7693:18;;;7686:62;7784:26;7764:18;;;7757:54;7828:19;;2064:92:68;7433:420:144;2064:92:68;-1:-1:-1;1030:66:65::1;2762:131:68::0;:::o;3070:208:133:-;1355:13:47;:11;:13::i;:::-;-1:-1:-1;;;;;3170:27:133;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;3170:44:133::1;::::0;::::1;;::::0;;::::1;::::0;;;3229:42;;8026:74:144;;;8116:18;;;8109:50;3229:42:133::1;::::0;7999:18:144;3229:42:133::1;;;;;;;;3070:208:::0;;:::o;2085:101:47:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2497:222:133:-;1355:13:47;:11;:13::i;:::-;2585:35:133::1;2604:15;2585:18;:35::i;:::-;2630:18;:36:::0;;-1:-1:-1;;2630:36:133::1;-1:-1:-1::0;;;;;2630:36:133;::::1;::::0;;::::1;::::0;;;2681:31:::1;::::0;5914:74:144;;;2681:31:133::1;::::0;5902:2:144;5887:18;2681:31:133::1;;;;;;;2497:222:::0;:::o;1957:534::-;2079:31;2126:35;2164:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2213:5:133;:7;;2126:61;;-1:-1:-1;2213:5:133;:7;;;:::i;:::-;;;;-1:-1:-1;2197:13:133;;;:23;2264:4;2230:23;;;:39;2280:36;;;;;-1:-1:-1;;;;;2280:28:133;;;;;:36;;2197:6;;2280:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;2326:43:133;;;;;;:15;:43;;;;;;;;;2378:4;2326:49;;;:56;;-1:-1:-1;;2326:56:133;;;;;;2397:44;;5914:74:144;;;2397:44:133;;5887:18:144;2397:44:133;;;;;;;2466:17;1957:534;-1:-1:-1;;1957:534:133:o;2846:218::-;1355:13:47;:11;:13::i;:::-;-1:-1:-1;;;;;2950:27:133;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;3014:43;;11307:74:144;;;11397:18;;11390:34;;;3014:43:133::1;::::0;11280:18:144;3014:43:133::1;11133:297:144::0;1659:292:133;3279:19:49;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:49;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:49;1713:19:52;:23;;;3387:66:49;;-1:-1:-1;3436:12:49;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:49;;11637:2:144;3325:201:49;;;11619:21:144;11676:2;11656:18;;;11649:30;11715:34;11695:18;;;11688:62;11786:16;11766:18;;;11759:44;11820:19;;3325:201:49;11435:410:144;3325:201:49;3536:12;:16;;-1:-1:-1;;3536:16:49;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:49;;;;;3562:65;1745:16:133::1;:14;:16::i;:::-;1779:1;1771:5;:9:::0;1790:18:::1;:40:::0;;-1:-1:-1;;1790:40:133::1;-1:-1:-1::0;;;;;1790:40:133;::::1;::::0;;::::1;::::0;;;1845:35:::1;::::0;5914:74:144;;;1845:35:133::1;::::0;5902:2:144;5887:18;1845:35:133::1;;;;;;;3651:14:49::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:49;;;3721:14;;-1:-1:-1;12002:36:144;;3721:14:49;;11990:2:144;11975:18;3721:14:49;11850:194:144;2335:198:47;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:47;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:47;;12251:2:144;2415:73:47::1;::::0;::::1;12233:21:144::0;12290:2;12270:18;;;12263:30;12329:34;12309:18;;;12302:62;12400:8;12380:18;;;12373:36;12426:19;;2415:73:47::1;12049:402:144::0;2415:73:47::1;2498:28;2517:8;2498:18;:28::i;3689:66:133:-:0;1355:13:47;:11;:13::i;2494:922:65:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;:::-;2494:922;;;:::o;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:65;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:65;;;;;;;;-1:-1:-1;;3046:52:65;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:65;;12847:2:144;3262:56:65;;;12829:21:144;12886:2;12866:18;;;12859:30;12925:34;12905:18;;;12898:62;12996:16;12976:18;;;12969:44;13030:19;;3262:56:65;12645:410:144;3042:291:65;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:65;;13262:2:144;3140:82:65;;;13244:21:144;13301:2;13281:18;;;13274:30;13340:34;13320:18;;;13313:62;13411:11;13391:18;;;13384:39;13440:19;;3140:82:65;13060:405:144;3140:82:65;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;1620:130:47:-;1534:6;;-1:-1:-1;;;;;1534:6:47;965:10:53;1683:23:47;1675:68;;;;-1:-1:-1;;;1675:68:47;;13672:2:144;1675:68:47;;;13654:21:144;;;13691:18;;;13684:30;13750:34;13730:18;;;13723:62;13802:18;;1675:68:47;13470:356:144;2687:187:47;2779:6;;;-1:-1:-1;;;;;2795:17:47;;;-1:-1:-1;;2795:17:47;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1520:133:133:-;-1:-1:-1;;;;;1594:22:133;;1590:56;;1625:21;;;;;;;;;;;;;;1024:95:47;5374:13:49;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:49;;14033:2:144;5366:69:49;;;14015:21:144;14072:2;14052:18;;;14045:30;14111:34;14091:18;;;14084:62;-1:-1:-1;;;14162:18:144;;;14155:41;14213:19;;5366:69:49;13831:407:144;5366:69:49;1086:26:47::1;:24;:26::i;1406:259:65:-:0;-1:-1:-1;;;;;1713:19:52;;;1479:95:65;;;;-1:-1:-1;;;1479:95:65;;14445:2:144;1479:95:65;;;14427:21:144;14484:2;14464:18;;;14457:30;14523:34;14503:18;;;14496:62;14594:15;14574:18;;;14567:43;14627:19;;1479:95:65;14243:409:144;1479:95:65;1030:66;1584:74;;-1:-1:-1;;1584:74:65;-1:-1:-1;;;;;1584:74:65;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2057:265;;;:::o;1125:111:47:-;5374:13:49;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:49;;14033:2:144;5366:69:49;;;14015:21:144;14072:2;14052:18;;;14045:30;14111:34;14091:18;;;14084:62;-1:-1:-1;;;14162:18:144;;;14155:41;14213:19;;5366:69:49;13831:407:144;5366:69:49;1197:32:47::1;965:10:53::0;1197:18:47::1;:32::i;1771:152:65:-:0;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:65;;;;;;;;1771:152;:::o;6674:198:80:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:80:o;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:80;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:80:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:52;;;8113:60:80;;;;-1:-1:-1;;;8113:60:80;;15151:2:144;8113:60:80;;;15133:21:144;15190:2;15170:18;;;15163:30;15229:31;15209:18;;;15202:59;15278:18;;8113:60:80;14949:353:144;8113:60:80;-1:-1:-1;8208:10:80;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:80;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;:::o;14:154:144:-;-1:-1:-1;;;;;93:5:144;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;746:184::-;-1:-1:-1;;;795:1:144;788:88;895:4;892:1;885:15;919:4;916:1;909:15;935:250;1002:2;996:9;1044:6;1032:19;;1081:18;1066:34;;1102:22;;;1063:62;1060:88;;;1128:18;;:::i;:::-;1164:2;1157:22;935:250;:::o;1190:631::-;1254:5;1284:18;1325:2;1317:6;1314:14;1311:40;;;1331:18;;:::i;:::-;1406:2;1400:9;1374:2;1460:15;;-1:-1:-1;;1456:24:144;;;1482:2;1452:33;1448:42;1436:55;;;1506:18;;;1526:22;;;1503:46;1500:72;;;1552:18;;:::i;:::-;1592:10;1588:2;1581:22;1621:6;1612:15;;1651:6;1643;1636:22;1691:3;1682:6;1677:3;1673:16;1670:25;1667:45;;;1708:1;1705;1698:12;1667:45;1758:6;1753:3;1746:4;1738:6;1734:17;1721:44;1813:1;1806:4;1797:6;1789;1785:19;1781:30;1774:41;;;;1190:631;;;;;:::o;1826:584::-;1903:6;1911;1964:2;1952:9;1943:7;1939:23;1935:32;1932:52;;;1980:1;1977;1970:12;1932:52;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;-1:-1:-1;2144:2:144;2129:18;;2116:32;2171:18;2160:30;;2157:50;;;2203:1;2200;2193:12;2157:50;2226:22;;2279:4;2271:13;;2267:27;-1:-1:-1;2257:55:144;;2308:1;2305;2298:12;2257:55;2331:73;2396:7;2391:2;2378:16;2373:2;2369;2365:11;2331:73;:::i;:::-;2321:83;;;1826:584;;;;;:::o;2597:160::-;2662:20;;2718:13;;2711:21;2701:32;;2691:60;;2747:1;2744;2737:12;2762:315;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;2943:9;2930:23;2962:31;2987:5;2962:31;:::i;:::-;3012:5;-1:-1:-1;3036:35:144;3067:2;3052:18;;3036:35;:::i;:::-;3026:45;;2762:315;;;;;:::o;3082:221::-;3125:5;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;3218:79;3293:3;3284:6;3271:20;3264:4;3256:6;3252:17;3218:79;:::i;3308:610::-;3363:5;3411:4;3399:9;3394:3;3390:19;3386:30;3383:50;;;3429:1;3426;3419:12;3383:50;3462:4;3456:11;3506:4;3498:6;3494:17;3530:18;3598:6;3586:10;3583:22;3578:2;3566:10;3563:18;3560:46;3557:72;;;3609:18;;:::i;:::-;3651:10;3645:4;3638:24;3680:6;3671:15;;3723:9;3710:23;3702:6;3695:39;3785:2;3774:9;3770:18;3757:32;3743:46;;3812:2;3804:6;3801:14;3798:34;;;3828:1;3825;3818:12;3798:34;;3865:46;3907:3;3898:6;3887:9;3883:22;3865:46;:::i;:::-;3860:2;3852:6;3848:15;3841:71;;;3308:610;;;;:::o;3923:1708::-;4017:6;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4126:9;4113:23;4155:18;4196:2;4188:6;4185:14;4182:34;;;4212:1;4209;4202:12;4182:34;4235:22;;;;4291:6;4273:16;;;4269:29;4266:49;;;4311:1;4308;4301:12;4266:49;4337:17;;:::i;:::-;4377:22;4396:2;4377:22;:::i;:::-;4370:5;4363:37;4432:31;4459:2;4455;4451:11;4432:31;:::i;:::-;4427:2;4420:5;4416:14;4409:55;4517:2;4513;4509:11;4496:25;4491:2;4484:5;4480:14;4473:49;4575:2;4571;4567:11;4554:25;4549:2;4542:5;4538:14;4531:49;4634:3;4630:2;4626:12;4613:26;4607:3;4600:5;4596:15;4589:51;4673:32;4700:3;4696:2;4692:12;4673:32;:::i;:::-;4667:3;4660:5;4656:15;4649:57;4739:32;4766:3;4762:2;4758:12;4739:32;:::i;:::-;4733:3;4726:5;4722:15;4715:57;4818:3;4814:2;4810:12;4797:26;4848:2;4838:8;4835:16;4832:36;;;4864:1;4861;4854:12;4832:36;4901:54;4947:7;4936:8;4932:2;4928:17;4901:54;:::i;:::-;4895:3;4888:5;4884:15;4877:79;;4975:3;5010:31;5037:2;5033;5029:11;5010:31;:::i;:::-;4994:14;;;4987:55;5061:3;5102:11;;;5089:25;5126:16;;;5123:36;;;5155:1;5152;5145:12;5123:36;5191:45;5228:7;5217:8;5213:2;5209:17;5191:45;:::i;:::-;5186:2;5179:5;5175:14;5168:69;;;5256:3;5291:28;5315:2;5311;5307:11;5291:28;:::i;:::-;5275:14;;;5268:52;5339:3;5380:11;;;5367:25;5404:16;;;5401:36;;;5433:1;5430;5423:12;5401:36;5469:45;5506:7;5495:8;5491:2;5487:17;5469:45;:::i;:::-;5464:2;5457:5;5453:14;5446:69;;;5534:3;5524:13;;5569:31;5596:2;5592;5588:11;5569:31;:::i;:::-;5553:14;;;5546:55;;;;5557:5;3923:1708;-1:-1:-1;;;;3923:1708:144:o;5999:315::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;6304:2;6289:18;;;;6276:32;;-1:-1:-1;;;5999:315:144:o;8170:289::-;8209:3;8230:17;;;8227:197;;-1:-1:-1;;;8277:1:144;8270:88;8381:4;8378:1;8371:15;8409:4;8406:1;8399:15;8227:197;-1:-1:-1;8451:1:144;8440:13;;8170:289::o;8464:250::-;8549:1;8559:113;8573:6;8570:1;8567:13;8559:113;;;8649:11;;;8643:18;8630:11;;;8623:39;8595:2;8588:10;8559:113;;;-1:-1:-1;;8706:1:144;8688:16;;8681:27;8464:250::o;8719:271::-;8761:3;8799:5;8793:12;8826:6;8821:3;8814:19;8842:76;8911:6;8904:4;8899:3;8895:14;8888:4;8881:5;8877:16;8842:76;:::i;:::-;8972:2;8951:15;-1:-1:-1;;8947:29:144;8938:39;;;;8979:4;8934:50;;8719:271;-1:-1:-1;;8719:271:144:o;8995:252::-;9082:5;9076:12;9071:3;9064:25;9046:3;9135:4;9128:5;9124:16;9118:23;9173:4;9166;9161:3;9157:14;9150:28;9194:47;9235:4;9230:3;9226:14;9212:12;9194:47;:::i;9252:1876::-;9451:2;9440:9;9433:21;9463:53;9512:2;9501:9;9497:18;9488:6;9482:13;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;9463:53;9414:4;9563:2;9555:6;9551:15;9545:22;9576:52;9624:2;9613:9;9609:18;9595:12;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;9576:52;;9682:2;9674:6;9670:15;9664:22;9659:2;9648:9;9644:18;9637:50;9742:2;9734:6;9730:15;9724:22;9718:3;9707:9;9703:19;9696:51;9802:3;9794:6;9790:16;9784:23;9778:3;9767:9;9763:19;9756:52;9857:3;9849:6;9845:16;9839:23;9871:55;9921:3;9910:9;9906:19;9890:14;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;9871:55;-1:-1:-1;9975:3:144;9963:16;;9957:23;-1:-1:-1;;;;;5702:54:144;;10039:3;10024:19;;5690:67;9989:55;10093:3;10085:6;10081:16;10075:23;10117:6;10142:3;10181:2;10176;10165:9;10161:18;10154:30;10207:63;10265:3;10254:9;10250:19;10234:14;10207:63;:::i;:::-;10307:15;;;10301:22;10193:77;;-1:-1:-1;10342:3:144;10354:54;10389:18;;;10301:22;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;10354:54;10457:2;10449:6;10445:15;10439:22;10417:44;;;10484:2;10480:7;10506:3;10573:2;10561:9;10553:6;10549:22;10545:31;10540:2;10529:9;10525:18;10518:59;10600:41;10634:6;10618:14;10600:41;:::i;:::-;10586:55;;10690:2;10682:6;10678:15;10672:22;10650:44;;;10713:3;10725:51;10772:2;10761:9;10757:18;10741:14;6389:13;6382:21;6370:34;;6319:91;10725:51;10825:2;10817:6;10813:15;10807:22;10785:44;;;10848:3;10915:2;10903:9;10895:6;10891:22;10887:31;10882:2;10871:9;10867:18;10860:59;10942:41;10976:6;10960:14;10942:41;:::i;:::-;10928:55;;11032:2;11024:6;11020:15;11014:22;10992:44;;;;11045:54;11095:2;11084:9;11080:18;11064:14;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;11045:54;-1:-1:-1;11116:6:144;;9252:1876;-1:-1:-1;;;;9252:1876:144:o;12456:184::-;12526:6;12579:2;12567:9;12558:7;12554:23;12550:32;12547:52;;;12595:1;12592;12585:12;12547:52;-1:-1:-1;12618:16:144;;12456:184;-1:-1:-1;12456:184:144:o;14657:287::-;14786:3;14824:6;14818:13;14840:66;14899:6;14894:3;14887:4;14879:6;14875:17;14840:66;:::i;:::-;14922:16;;;;;14657:287;-1:-1:-1;;14657:287:144:o;15307:220::-;15456:2;15445:9;15438:21;15419:4;15476:45;15517:2;15506:9;15502:18;15494:6;15476:45;:::i","linkReferences":{},"immutableReferences":{"56161":[{"start":939,"length":32},{"start":1072,"length":32},{"start":1318,"length":32},{"start":1451,"length":32},{"start":1685,"length":32}]}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","initialize(address)":"c4d66de8","nonce()":"affed0e0","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gardensFeeReceiver\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-from\":\"RegistryFactory\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactoryV0_0.sol\":\"RegistryFactoryV0_0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]},\"pkg/contracts/src/RegistryFactoryV0_0.sol\":{\"keccak256\":\"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587\",\"dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_gardensFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactoryV0_0.sol":"RegistryFactoryV0_0"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_0.sol":{"keccak256":"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9","urls":["bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587","dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53246,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53249,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53951,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":53038,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":53158,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":78171,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"nonce","offset":0,"slot":"101","type":"t_uint256"},{"astId":78176,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"communityToInfo","offset":0,"slot":"102","type":"t_mapping(t_address,t_struct(CommunityInfo)78164_storage)"},{"astId":78178,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"gardensFeeReceiver","offset":0,"slot":"103","type":"t_address"},{"astId":78426,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"104","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)78164_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)78164_storage"},"t_struct(CommunityInfo)78164_storage":{"encoding":"inplace","label":"struct CommunityInfo","numberOfBytes":"64","members":[{"astId":78161,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":78163,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactoryV0_0.sol","id":78428,"exportedSymbols":{"CommunityInfo":[78164],"OwnableUpgradeable":[53159],"RegistryCommunity":[77913],"RegistryFactory":[78149],"RegistryFactoryV0_0":[78427],"UUPSUpgradeable":[56261]},"nodeType":"SourceUnit","src":"42:3748:133","nodes":[{"id":78151,"nodeType":"PragmaDirective","src":"42:24:133","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":78153,"nodeType":"ImportDirective","src":"68:63:133","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":78428,"sourceUnit":77914,"symbolAliases":[{"foreign":{"id":78152,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"76:17:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78155,"nodeType":"ImportDirective","src":"133:59:133","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"../src/RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":78428,"sourceUnit":78150,"symbolAliases":[{"foreign":{"id":78154,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78149,"src":"141:15:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78157,"nodeType":"ImportDirective","src":"194:110:133","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78428,"sourceUnit":53160,"symbolAliases":[{"foreign":{"id":78156,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53159,"src":"202:18:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78159,"nodeType":"ImportDirective","src":"305:88:133","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78428,"sourceUnit":56262,"symbolAliases":[{"foreign":{"id":78158,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"313:15:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78164,"nodeType":"StructDefinition","src":"395:57:133","nodes":[],"canonicalName":"CommunityInfo","members":[{"constant":false,"id":78161,"mutability":"mutable","name":"fee","nameLocation":"430:3:133","nodeType":"VariableDeclaration","scope":78164,"src":"422:11:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78160,"name":"uint256","nodeType":"ElementaryTypeName","src":"422:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78163,"mutability":"mutable","name":"valid","nameLocation":"444:5:133","nodeType":"VariableDeclaration","scope":78164,"src":"439:10:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78162,"name":"bool","nodeType":"ElementaryTypeName","src":"439:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"402:13:133","scope":78428,"visibility":"public"},{"id":78427,"nodeType":"ContractDefinition","src":"499:3290:133","nodes":[{"id":78171,"nodeType":"VariableDeclaration","src":"573:20:133","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"588:5:133","scope":78427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78170,"name":"uint256","nodeType":"ElementaryTypeName","src":"573:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":78176,"nodeType":"VariableDeclaration","src":"600:49:133","nodes":[],"constant":false,"mutability":"mutable","name":"communityToInfo","nameLocation":"634:15:133","scope":78427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo)"},"typeName":{"id":78175,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":78172,"name":"address","nodeType":"ElementaryTypeName","src":"608:7:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"600:33:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":78174,"nodeType":"UserDefinedTypeName","pathNode":{"id":78173,"name":"CommunityInfo","nameLocations":["619:13:133"],"nodeType":"IdentifierPath","referencedDeclaration":78164,"src":"619:13:133"},"referencedDeclaration":78164,"src":"619:13:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage_ptr","typeString":"struct CommunityInfo"}}},"visibility":"internal"},{"id":78178,"nodeType":"VariableDeclaration","src":"655:33:133","nodes":[],"constant":false,"functionSelector":"b8bed901","mutability":"mutable","name":"gardensFeeReceiver","nameLocation":"670:18:133","scope":78427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78177,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":78182,"nodeType":"EventDefinition","src":"861:46:133","nodes":[],"anonymous":false,"eventSelector":"bdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d","name":"FeeReceiverSet","nameLocation":"867:14:133","parameters":{"id":78181,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78180,"indexed":false,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"890:15:133","nodeType":"VariableDeclaration","scope":78182,"src":"882:23:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78179,"name":"address","nodeType":"ElementaryTypeName","src":"882:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"881:25:133"}},{"id":78188,"nodeType":"EventDefinition","src":"912:66:133","nodes":[],"anonymous":false,"eventSelector":"a1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c","name":"ProtocolFeeSet","nameLocation":"918:14:133","parameters":{"id":78187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78184,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"941:10:133","nodeType":"VariableDeclaration","scope":78188,"src":"933:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78183,"name":"address","nodeType":"ElementaryTypeName","src":"933:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78186,"indexed":false,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"961:15:133","nodeType":"VariableDeclaration","scope":78188,"src":"953:23:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78185,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"932:45:133"}},{"id":78192,"nodeType":"EventDefinition","src":"983:51:133","nodes":[],"anonymous":false,"eventSelector":"b4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29","name":"CommunityCreated","nameLocation":"989:16:133","parameters":{"id":78191,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78190,"indexed":false,"mutability":"mutable","name":"_registryCommunity","nameLocation":"1014:18:133","nodeType":"VariableDeclaration","scope":78192,"src":"1006:26:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78189,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1005:28:133"}},{"id":78198,"nodeType":"EventDefinition","src":"1039:62:133","nodes":[],"anonymous":false,"eventSelector":"ecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f62","name":"CommunityValiditySet","nameLocation":"1045:20:133","parameters":{"id":78197,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78194,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"1074:10:133","nodeType":"VariableDeclaration","scope":78198,"src":"1066:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78193,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78196,"indexed":false,"mutability":"mutable","name":"_isValid","nameLocation":"1091:8:133","nodeType":"VariableDeclaration","scope":78198,"src":"1086:13:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78195,"name":"bool","nodeType":"ElementaryTypeName","src":"1086:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1065:35:133"}},{"id":78202,"nodeType":"ErrorDefinition","src":"1273:43:133","nodes":[],"errorSelector":"f5a6943d","name":"CommunityInvalid","nameLocation":"1279:16:133","parameters":{"id":78201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78200,"mutability":"mutable","name":"_community","nameLocation":"1304:10:133","nodeType":"VariableDeclaration","scope":78202,"src":"1296:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78199,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1295:20:133"}},{"id":78204,"nodeType":"ErrorDefinition","src":"1321:28:133","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"1327:19:133","parameters":{"id":78203,"nodeType":"ParameterList","parameters":[],"src":"1346:2:133"}},{"id":78220,"nodeType":"FunctionDefinition","src":"1520:133:133","nodes":[],"body":{"id":78219,"nodeType":"Block","src":"1580:73:133","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78209,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78206,"src":"1594:8:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":78212,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:1:133","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":78211,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78210,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:133","typeDescriptions":{}}},"id":78213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:10:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1594:22:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78218,"nodeType":"IfStatement","src":"1590:56:133","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78215,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78204,"src":"1625:19:133","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1625:21:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78217,"nodeType":"RevertStatement","src":"1618:28:133"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"1529:18:133","parameters":{"id":78207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78206,"mutability":"mutable","name":"_address","nameLocation":"1556:8:133","nodeType":"VariableDeclaration","scope":78220,"src":"1548:16:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78205,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1547:18:133"},"returnParameters":{"id":78208,"nodeType":"ParameterList","parameters":[],"src":"1580:0:133"},"scope":78427,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":78243,"nodeType":"FunctionDefinition","src":"1659:292:133","nodes":[],"body":{"id":78242,"nodeType":"Block","src":"1735:216:133","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78227,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53054,"src":"1745:14:133","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1745:16:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78229,"nodeType":"ExpressionStatement","src":"1745:16:133"},{"expression":{"id":78232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78230,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78171,"src":"1771:5:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":78231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1779:1:133","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1771:9:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78233,"nodeType":"ExpressionStatement","src":"1771:9:133"},{"expression":{"id":78236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78234,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78178,"src":"1790:18:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78235,"name":"_gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78222,"src":"1811:19:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1790:40:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78237,"nodeType":"ExpressionStatement","src":"1790:40:133"},{"eventCall":{"arguments":[{"id":78239,"name":"_gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78222,"src":"1860:19:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78238,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"1845:14:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:35:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78241,"nodeType":"EmitStatement","src":"1840:40:133"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":78225,"kind":"modifierInvocation","modifierName":{"id":78224,"name":"initializer","nameLocations":["1723:11:133"],"nodeType":"IdentifierPath","referencedDeclaration":53310,"src":"1723:11:133"},"nodeType":"ModifierInvocation","src":"1723:11:133"}],"name":"initialize","nameLocation":"1668:10:133","parameters":{"id":78223,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78222,"mutability":"mutable","name":"_gardensFeeReceiver","nameLocation":"1687:19:133","nodeType":"VariableDeclaration","scope":78243,"src":"1679:27:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78221,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:29:133"},"returnParameters":{"id":78226,"nodeType":"ParameterList","parameters":[],"src":"1735:0:133"},"scope":78427,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78304,"nodeType":"FunctionDefinition","src":"1957:534:133","nodes":[],"body":{"id":78303,"nodeType":"Block","src":"2116:375:133","nodes":[],"statements":[{"assignments":[78253],"declarations":[{"constant":false,"id":78253,"mutability":"mutable","name":"registryCommunity","nameLocation":"2144:17:133","nodeType":"VariableDeclaration","scope":78303,"src":"2126:35:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"},"typeName":{"id":78252,"nodeType":"UserDefinedTypeName","pathNode":{"id":78251,"name":"RegistryCommunity","nameLocations":["2126:17:133"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"2126:17:133"},"referencedDeclaration":77913,"src":"2126:17:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"visibility":"internal"}],"id":78258,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2164:21:133","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegistryCommunity_$77913_$","typeString":"function () returns (contract RegistryCommunity)"},"typeName":{"id":78255,"nodeType":"UserDefinedTypeName","pathNode":{"id":78254,"name":"RegistryCommunity","nameLocations":["2168:17:133"],"nodeType":"IdentifierPath","referencedDeclaration":77913,"src":"2168:17:133"},"referencedDeclaration":77913,"src":"2168:17:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}},"id":78257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2164:23:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"nodeType":"VariableDeclarationStatement","src":"2126:61:133"},{"expression":{"id":78264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78259,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78246,"src":"2197:6:133","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":78261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2204:6:133","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76328,"src":"2197:13:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2213:7:133","subExpression":{"id":78262,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78171,"src":"2213:5:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2197:23:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78265,"nodeType":"ExpressionStatement","src":"2197:23:133"},{"expression":{"id":78273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78266,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78246,"src":"2230:6:133","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":78268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2237:16:133","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76330,"src":"2230:23:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78271,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2264:4:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactoryV0_0_$78427","typeString":"contract RegistryFactoryV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryFactoryV0_0_$78427","typeString":"contract RegistryFactoryV0_0"}],"id":78270,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2256:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78269,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:133","typeDescriptions":{}}},"id":78272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2256:13:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2230:39:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78274,"nodeType":"ExpressionStatement","src":"2230:39:133"},{"expression":{"arguments":[{"id":78278,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78246,"src":"2309:6:133","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}],"expression":{"id":78275,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78253,"src":"2280:17:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}},"id":78277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2298:10:133","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"2280:28:133","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_InitializeParams_$76346_memory_ptr_$returns$__$","typeString":"function (struct RegistryCommunity.InitializeParams memory) external"}},"id":78279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2280:36:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78280,"nodeType":"ExpressionStatement","src":"2280:36:133"},{"expression":{"id":78289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78281,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78176,"src":"2326:15:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78286,"indexExpression":{"arguments":[{"id":78284,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78253,"src":"2350:17:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":78283,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2342:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78282,"name":"address","nodeType":"ElementaryTypeName","src":"2342:7:133","typeDescriptions":{}}},"id":78285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2342:26:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2326:43:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage","typeString":"struct CommunityInfo storage ref"}},"id":78287,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2370:5:133","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":78163,"src":"2326:49:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78288,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2378:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2326:56:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78290,"nodeType":"ExpressionStatement","src":"2326:56:133"},{"eventCall":{"arguments":[{"arguments":[{"id":78294,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78253,"src":"2422:17:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":78293,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2414:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78292,"name":"address","nodeType":"ElementaryTypeName","src":"2414:7:133","typeDescriptions":{}}},"id":78295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2414:26:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78291,"name":"CommunityCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78192,"src":"2397:16:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2397:44:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78297,"nodeType":"EmitStatement","src":"2392:49:133"},{"expression":{"arguments":[{"id":78300,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78253,"src":"2466:17:133","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77913","typeString":"contract RegistryCommunity"}],"id":78299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2458:7:133","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78298,"name":"address","nodeType":"ElementaryTypeName","src":"2458:7:133","typeDescriptions":{}}},"id":78301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:26:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78250,"id":78302,"nodeType":"Return","src":"2451:33:133"}]},"functionSelector":"8a16135f","implemented":true,"kind":"function","modifiers":[],"name":"createRegistry","nameLocation":"1966:14:133","parameters":{"id":78247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78246,"mutability":"mutable","name":"params","nameLocation":"2023:6:133","nodeType":"VariableDeclaration","scope":78304,"src":"1981:48:133","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":78245,"nodeType":"UserDefinedTypeName","pathNode":{"id":78244,"name":"RegistryCommunity.InitializeParams","nameLocations":["1981:17:133","1999:16:133"],"nodeType":"IdentifierPath","referencedDeclaration":76346,"src":"1981:34:133"},"referencedDeclaration":76346,"src":"1981:34:133","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76346_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"1980:50:133"},"returnParameters":{"id":78250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78249,"mutability":"mutable","name":"_createdRegistryAddress","nameLocation":"2087:23:133","nodeType":"VariableDeclaration","scope":78304,"src":"2079:31:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78248,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2078:33:133"},"scope":78427,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78324,"nodeType":"FunctionDefinition","src":"2497:222:133","nodes":[],"body":{"id":78323,"nodeType":"Block","src":"2575:144:133","nodes":[],"statements":[{"expression":{"arguments":[{"id":78312,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78306,"src":"2604:15:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78311,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78220,"src":"2585:18:133","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2585:35:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78314,"nodeType":"ExpressionStatement","src":"2585:35:133"},{"expression":{"id":78317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78315,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78178,"src":"2630:18:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78316,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78306,"src":"2651:15:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2630:36:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78318,"nodeType":"ExpressionStatement","src":"2630:36:133"},{"eventCall":{"arguments":[{"id":78320,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78306,"src":"2696:15:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78319,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78182,"src":"2681:14:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2681:31:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78322,"nodeType":"EmitStatement","src":"2676:36:133"}]},"functionSelector":"8279c7db","implemented":true,"kind":"function","modifiers":[{"id":78309,"kind":"modifierInvocation","modifierName":{"id":78308,"name":"onlyOwner","nameLocations":["2565:9:133"],"nodeType":"IdentifierPath","referencedDeclaration":53073,"src":"2565:9:133"},"nodeType":"ModifierInvocation","src":"2565:9:133"}],"name":"setReceiverAddress","nameLocation":"2506:18:133","parameters":{"id":78307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78306,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"2533:15:133","nodeType":"VariableDeclaration","scope":78324,"src":"2525:23:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78305,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2524:25:133"},"returnParameters":{"id":78310,"nodeType":"ParameterList","parameters":[],"src":"2575:0:133"},"scope":78427,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78332,"nodeType":"FunctionDefinition","src":"2725:115:133","nodes":[],"body":{"id":78331,"nodeType":"Block","src":"2798:42:133","nodes":[],"statements":[{"expression":{"id":78329,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78178,"src":"2815:18:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78328,"id":78330,"nodeType":"Return","src":"2808:25:133"}]},"functionSelector":"987435be","implemented":true,"kind":"function","modifiers":[],"name":"getGardensFeeReceiver","nameLocation":"2734:21:133","parameters":{"id":78325,"nodeType":"ParameterList","parameters":[],"src":"2755:2:133"},"returnParameters":{"id":78328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78332,"src":"2789:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78326,"name":"address","nodeType":"ElementaryTypeName","src":"2789:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2788:9:133"},"scope":78427,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":78354,"nodeType":"FunctionDefinition","src":"2846:218:133","nodes":[],"body":{"id":78353,"nodeType":"Block","src":"2940:124:133","nodes":[],"statements":[{"expression":{"id":78346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78341,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78176,"src":"2950:15:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78343,"indexExpression":{"id":78342,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78334,"src":"2966:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2950:27:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage","typeString":"struct CommunityInfo storage ref"}},"id":78344,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2978:3:133","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":78161,"src":"2950:31:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78345,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78336,"src":"2984:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2950:49:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78347,"nodeType":"ExpressionStatement","src":"2950:49:133"},{"eventCall":{"arguments":[{"id":78349,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78334,"src":"3029:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78350,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78336,"src":"3041:15:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78348,"name":"ProtocolFeeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78188,"src":"3014:14:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":78351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3014:43:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78352,"nodeType":"EmitStatement","src":"3009:48:133"}]},"functionSelector":"b5b3ca2c","implemented":true,"kind":"function","modifiers":[{"id":78339,"kind":"modifierInvocation","modifierName":{"id":78338,"name":"onlyOwner","nameLocations":["2930:9:133"],"nodeType":"IdentifierPath","referencedDeclaration":53073,"src":"2930:9:133"},"nodeType":"ModifierInvocation","src":"2930:9:133"}],"name":"setProtocolFee","nameLocation":"2855:14:133","parameters":{"id":78337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78334,"mutability":"mutable","name":"_community","nameLocation":"2878:10:133","nodeType":"VariableDeclaration","scope":78354,"src":"2870:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78333,"name":"address","nodeType":"ElementaryTypeName","src":"2870:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78336,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"2898:15:133","nodeType":"VariableDeclaration","scope":78354,"src":"2890:23:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78335,"name":"uint256","nodeType":"ElementaryTypeName","src":"2890:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2869:45:133"},"returnParameters":{"id":78340,"nodeType":"ParameterList","parameters":[],"src":"2940:0:133"},"scope":78427,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78376,"nodeType":"FunctionDefinition","src":"3070:208:133","nodes":[],"body":{"id":78375,"nodeType":"Block","src":"3160:118:133","nodes":[],"statements":[{"expression":{"id":78368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78363,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78176,"src":"3170:15:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78365,"indexExpression":{"id":78364,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78356,"src":"3186:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3170:27:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage","typeString":"struct CommunityInfo storage ref"}},"id":78366,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3198:5:133","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":78163,"src":"3170:33:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78367,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78358,"src":"3206:8:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3170:44:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78369,"nodeType":"ExpressionStatement","src":"3170:44:133"},{"eventCall":{"arguments":[{"id":78371,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78356,"src":"3250:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78372,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78358,"src":"3262:8:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78370,"name":"CommunityValiditySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78198,"src":"3229:20:133","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":78373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3229:42:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78374,"nodeType":"EmitStatement","src":"3224:47:133"}]},"functionSelector":"5a2c8ace","implemented":true,"kind":"function","modifiers":[{"id":78361,"kind":"modifierInvocation","modifierName":{"id":78360,"name":"onlyOwner","nameLocations":["3150:9:133"],"nodeType":"IdentifierPath","referencedDeclaration":53073,"src":"3150:9:133"},"nodeType":"ModifierInvocation","src":"3150:9:133"}],"name":"setCommunityValidity","nameLocation":"3079:20:133","parameters":{"id":78359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78356,"mutability":"mutable","name":"_community","nameLocation":"3108:10:133","nodeType":"VariableDeclaration","scope":78376,"src":"3100:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78355,"name":"address","nodeType":"ElementaryTypeName","src":"3100:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78358,"mutability":"mutable","name":"_isValid","nameLocation":"3125:8:133","nodeType":"VariableDeclaration","scope":78376,"src":"3120:13:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78357,"name":"bool","nodeType":"ElementaryTypeName","src":"3120:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3099:35:133"},"returnParameters":{"id":78362,"nodeType":"ParameterList","parameters":[],"src":"3160:0:133"},"scope":78427,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78389,"nodeType":"FunctionDefinition","src":"3284:144:133","nodes":[],"body":{"id":78388,"nodeType":"Block","src":"3371:57:133","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":78383,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78176,"src":"3388:15:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78385,"indexExpression":{"id":78384,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78378,"src":"3404:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3388:27:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage","typeString":"struct CommunityInfo storage ref"}},"id":78386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3416:5:133","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":78163,"src":"3388:33:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78382,"id":78387,"nodeType":"Return","src":"3381:40:133"}]},"functionSelector":"f5016b5e","implemented":true,"kind":"function","modifiers":[],"name":"getCommunityValidity","nameLocation":"3293:20:133","parameters":{"id":78379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78378,"mutability":"mutable","name":"_community","nameLocation":"3322:10:133","nodeType":"VariableDeclaration","scope":78389,"src":"3314:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78377,"name":"address","nodeType":"ElementaryTypeName","src":"3314:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3313:20:133"},"returnParameters":{"id":78382,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78381,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78389,"src":"3365:4:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78380,"name":"bool","nodeType":"ElementaryTypeName","src":"3365:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3364:6:133"},"scope":78427,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":78413,"nodeType":"FunctionDefinition","src":"3434:249:133","nodes":[],"body":{"id":78412,"nodeType":"Block","src":"3518:165:133","nodes":[],"statements":[{"condition":{"id":78400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3532:34:133","subExpression":{"expression":{"baseExpression":{"id":78396,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78176,"src":"3533:15:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78398,"indexExpression":{"id":78397,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78391,"src":"3549:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3533:27:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage","typeString":"struct CommunityInfo storage ref"}},"id":78399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3561:5:133","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":78163,"src":"3533:33:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78406,"nodeType":"IfStatement","src":"3528:100:133","trueBody":{"id":78405,"nodeType":"Block","src":"3568:60:133","statements":[{"errorCall":{"arguments":[{"id":78402,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78391,"src":"3606:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78401,"name":"CommunityInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78202,"src":"3589:16:133","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3589:28:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78404,"nodeType":"RevertStatement","src":"3582:35:133"}]}},{"expression":{"expression":{"baseExpression":{"id":78407,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78176,"src":"3645:15:133","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$78164_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78409,"indexExpression":{"id":78408,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78391,"src":"3661:10:133","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3645:27:133","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$78164_storage","typeString":"struct CommunityInfo storage ref"}},"id":78410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3673:3:133","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":78161,"src":"3645:31:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78395,"id":78411,"nodeType":"Return","src":"3638:38:133"}]},"functionSelector":"0a992e0c","implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"3443:14:133","parameters":{"id":78392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78391,"mutability":"mutable","name":"_community","nameLocation":"3466:10:133","nodeType":"VariableDeclaration","scope":78413,"src":"3458:18:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78390,"name":"address","nodeType":"ElementaryTypeName","src":"3458:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3457:20:133"},"returnParameters":{"id":78395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78413,"src":"3509:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78393,"name":"uint256","nodeType":"ElementaryTypeName","src":"3509:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3508:9:133"},"scope":78427,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":78422,"nodeType":"FunctionDefinition","src":"3689:66:133","nodes":[],"body":{"id":78421,"nodeType":"Block","src":"3753:2:133","nodes":[],"statements":[]},"baseFunctions":[56260],"implemented":true,"kind":"function","modifiers":[{"id":78419,"kind":"modifierInvocation","modifierName":{"id":78418,"name":"onlyOwner","nameLocations":["3743:9:133"],"nodeType":"IdentifierPath","referencedDeclaration":53073,"src":"3743:9:133"},"nodeType":"ModifierInvocation","src":"3743:9:133"}],"name":"_authorizeUpgrade","nameLocation":"3698:17:133","overrides":{"id":78417,"nodeType":"OverrideSpecifier","overrides":[],"src":"3734:8:133"},"parameters":{"id":78416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78415,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78422,"src":"3716:7:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78414,"name":"address","nodeType":"ElementaryTypeName","src":"3716:7:133","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3715:9:133"},"returnParameters":{"id":78420,"nodeType":"ParameterList","parameters":[],"src":"3753:0:133"},"scope":78427,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78426,"nodeType":"VariableDeclaration","src":"3761:25:133","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"3781:5:133","scope":78427,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":78423,"name":"uint256","nodeType":"ElementaryTypeName","src":"3761:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78425,"length":{"hexValue":"3530","id":78424,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3769:2:133","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"3761:11:133","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":78166,"name":"OwnableUpgradeable","nameLocations":["531:18:133"],"nodeType":"IdentifierPath","referencedDeclaration":53159,"src":"531:18:133"},"id":78167,"nodeType":"InheritanceSpecifier","src":"531:18:133"},{"baseName":{"id":78168,"name":"UUPSUpgradeable","nameLocations":["551:15:133"],"nodeType":"IdentifierPath","referencedDeclaration":56261,"src":"551:15:133"},"id":78169,"nodeType":"InheritanceSpecifier","src":"551:15:133"}],"canonicalName":"RegistryFactoryV0_0","contractDependencies":[77913],"contractKind":"contract","documentation":{"id":78165,"nodeType":"StructuredDocumentation","src":"453:45:133","text":"@custom:oz-upgrades-from RegistryFactory"},"fullyImplemented":true,"linearizedBaseContracts":[78427,56261,56083,55732,55742,53159,53952,53408],"name":"RegistryFactoryV0_0","nameLocation":"508:19:133","scope":78428,"usedErrors":[78202,78204]}],"license":"AGPL-3.0-only"},"id":133} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json b/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json new file mode 100644 index 000000000..6d5b3e3e2 --- /dev/null +++ b/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_gardensFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeV2","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b5060805161608161004c600039600081816103db0152818161046001528181610556015281816105db01526106c501526160816000f3fe60806040526004361061010e5760003560e01c80638a16135f116100a5578063b5b3ca2c11610074578063c4d66de811610059578063c4d66de8146102c4578063f2fde38b146102e4578063f5016b5e1461030457600080fd5b8063b5b3ca2c14610284578063b8bed901146102a457600080fd5b80638a16135f146101fa5780638da5cb5b14610232578063987435be14610250578063affed0e01461026e57600080fd5b80635a2c8ace116100e15780635a2c8ace146101905780635cd8a76b146101b0578063715018a6146101c55780638279c7db146101da57600080fd5b80630a992e0c146101135780633659cfe6146101465780634f1ef2861461016857806352d1902d1461017b575b600080fd5b34801561011f57600080fd5b5061013361012e36600461132f565b610350565b6040519081526020015b60405180910390f35b34801561015257600080fd5b5061016661016136600461132f565b6103d1565b005b610166610176366004611402565b61054c565b34801561018757600080fd5b506101336106b8565b34801561019c57600080fd5b506101666101ab366004611476565b61077d565b3480156101bc57600080fd5b506101666107ec565b3480156101d157600080fd5b506101666108e1565b3480156101e657600080fd5b506101666101f536600461132f565b6108f5565b34801561020657600080fd5b5061021a61021536600461153a565b610961565b6040516001600160a01b03909116815260200161013d565b34801561023e57600080fd5b506033546001600160a01b031661021a565b34801561025c57600080fd5b506067546001600160a01b031661021a565b34801561027a57600080fd5b5061013360655481565b34801561029057600080fd5b5061016661029f366004611690565b610a87565b3480156102b057600080fd5b5060675461021a906001600160a01b031681565b3480156102d057600080fd5b506101666102df36600461132f565b610ae0565b3480156102f057600080fd5b506101666102ff36600461132f565b610c5c565b34801561031057600080fd5b5061034061031f36600461132f565b6001600160a01b031660009081526066602052604090206001015460ff1690565b604051901515815260200161013d565b6001600160a01b03811660009081526066602052604081206001015460ff166103b5576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361045e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104b97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146105245760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b61052d81610ce9565b6040805160008082526020820190925261054991839190610cf1565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106347f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461069f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b6106a882610ce9565b6106b482826001610cf1565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107585760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ac565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610785610e96565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b600054600290610100900460ff1615801561080e575060005460ff8083169116105b6108805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805461ffff191660ff83161761010017905561089c610ef0565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6108e9610e96565b6108f36000610f63565b565b6108fd610e96565b61090681610fc2565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d906020016108d6565b600080604051610970906112fc565b604051809103906000f08015801561098c573d6000803e3d6000fd5b5060658054919250600061099f836116bc565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906109f3908690600401611752565b600060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610a8f610e96565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107e0565b600054610100900460ff1615808015610b005750600054600160ff909116105b80610b1a5750303b158015610b1a575060005460ff166001145b610b8c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805460ff191660011790558015610baf576000805461ff0019166101001790555b610bb7610ef0565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a180156106b4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107e0565b610c64610e96565b6001600160a01b038116610ce05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ac565b61054981610f63565b610549610e96565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d2957610d2483611002565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d83575060408051601f3d908101601f19168201909252610d8091810190611891565b60015b610df55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610e8a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016103ac565b50610d248383836110cd565b6033546001600160a01b031633146108f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ac565b600054610100900460ff16610f5b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f36110f8565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610549576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381163b61107f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6110d68361116c565b6000825111806110e35750805b15610d24576110f283836111ac565b50505050565b600054610100900460ff166111635760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f333610f63565b61117581611002565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606111d2838360405180606001604052806027815260200162006025602791396111d9565b9392505050565b6060600080856001600160a01b0316856040516111f691906118aa565b600060405180830381855af49150503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b509150915061124786838387611251565b9695505050505050565b606083156112c05782516000036112b9576001600160a01b0385163b6112b95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ac565b50816112ca565b6112ca83836112d2565b949350505050565b8151156112e25781518083602001fd5b8060405162461bcd60e51b81526004016103ac91906118c6565b61474b80620018da83390190565b6001600160a01b038116811461054957600080fd5b803561132a8161130a565b919050565b60006020828403121561134157600080fd5b81356111d28161130a565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156113865761138661134c565b60405290565b600067ffffffffffffffff808411156113a7576113a761134c565b604051601f8501601f19908116603f011681019082821181831017156113cf576113cf61134c565b816040528093508581528686860111156113e857600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121561141557600080fd5b82356114208161130a565b9150602083013567ffffffffffffffff81111561143c57600080fd5b8301601f8101851361144d57600080fd5b61145c8582356020840161138c565b9150509250929050565b8035801515811461132a57600080fd5b6000806040838503121561148957600080fd5b82356114948161130a565b91506114a260208401611466565b90509250929050565b600082601f8301126114bc57600080fd5b6111d28383356020850161138c565b6000604082840312156114dd57600080fd5b6040516040810167ffffffffffffffff82821081831117156115015761150161134c565b8160405282935084358352602085013591508082111561152057600080fd5b5061152d858286016114ab565b6020830152505092915050565b60006020828403121561154c57600080fd5b813567ffffffffffffffff8082111561156457600080fd5b908301906101a0828603121561157957600080fd5b611581611362565b61158a8361131f565b81526115986020840161131f565b60208201526040830135604082015260608301356060820152608083013560808201526115c760a0840161131f565b60a08201526115d860c0840161131f565b60c082015260e0830135828111156115ef57600080fd5b6115fb878286016114cb565b60e08301525061010061160f81850161131f565b90820152610120838101358381111561162757600080fd5b611633888287016114ab565b828401525050610140611647818501611466565b90820152610160838101358381111561165f57600080fd5b61166b888287016114ab565b828401525050610180915061168182840161131f565b91810191909152949350505050565b600080604083850312156116a357600080fd5b82356116ae8161130a565b946020939093013593505050565b6000600182016116dc57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156116fe5781810151838201526020016116e6565b50506000910152565b6000815180845261171f8160208601602086016116e3565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526112ca6040850182611707565b6020815261176c6020820183516001600160a01b03169052565b6000602083015161178860408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516117c160c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526117f56101c0860184611733565b90860151909250610120611813868201836001600160a01b03169052565b80870151915050601f196101408187860301818801526118338584611707565b94508088015192505061016061184c8188018415159052565b808801519250506101808187860301818801526118698584611707565b94508088015192505050611887828601826001600160a01b03169052565b5090949350505050565b6000602082840312156118a357600080fd5b5051919050565b600082516118bc8184602087016116e3565b9190910192915050565b6020815260006111d2602083018461170756fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ee07bff90952a212f54dc79d31407cb2ee86de906b055b44e2fd47e77254811164736f6c63430008130033","sourceMap":"422:639:134:-:0;;;1088:4:68;1045:48;;422:639:134;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061010e5760003560e01c80638a16135f116100a5578063b5b3ca2c11610074578063c4d66de811610059578063c4d66de8146102c4578063f2fde38b146102e4578063f5016b5e1461030457600080fd5b8063b5b3ca2c14610284578063b8bed901146102a457600080fd5b80638a16135f146101fa5780638da5cb5b14610232578063987435be14610250578063affed0e01461026e57600080fd5b80635a2c8ace116100e15780635a2c8ace146101905780635cd8a76b146101b0578063715018a6146101c55780638279c7db146101da57600080fd5b80630a992e0c146101135780633659cfe6146101465780634f1ef2861461016857806352d1902d1461017b575b600080fd5b34801561011f57600080fd5b5061013361012e36600461132f565b610350565b6040519081526020015b60405180910390f35b34801561015257600080fd5b5061016661016136600461132f565b6103d1565b005b610166610176366004611402565b61054c565b34801561018757600080fd5b506101336106b8565b34801561019c57600080fd5b506101666101ab366004611476565b61077d565b3480156101bc57600080fd5b506101666107ec565b3480156101d157600080fd5b506101666108e1565b3480156101e657600080fd5b506101666101f536600461132f565b6108f5565b34801561020657600080fd5b5061021a61021536600461153a565b610961565b6040516001600160a01b03909116815260200161013d565b34801561023e57600080fd5b506033546001600160a01b031661021a565b34801561025c57600080fd5b506067546001600160a01b031661021a565b34801561027a57600080fd5b5061013360655481565b34801561029057600080fd5b5061016661029f366004611690565b610a87565b3480156102b057600080fd5b5060675461021a906001600160a01b031681565b3480156102d057600080fd5b506101666102df36600461132f565b610ae0565b3480156102f057600080fd5b506101666102ff36600461132f565b610c5c565b34801561031057600080fd5b5061034061031f36600461132f565b6001600160a01b031660009081526066602052604090206001015460ff1690565b604051901515815260200161013d565b6001600160a01b03811660009081526066602052604081206001015460ff166103b5576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361045e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104b97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146105245760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b61052d81610ce9565b6040805160008082526020820190925261054991839190610cf1565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106347f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461069f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b6106a882610ce9565b6106b482826001610cf1565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107585760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ac565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610785610e96565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b600054600290610100900460ff1615801561080e575060005460ff8083169116105b6108805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805461ffff191660ff83161761010017905561089c610ef0565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6108e9610e96565b6108f36000610f63565b565b6108fd610e96565b61090681610fc2565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d906020016108d6565b600080604051610970906112fc565b604051809103906000f08015801561098c573d6000803e3d6000fd5b5060658054919250600061099f836116bc565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906109f3908690600401611752565b600060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610a8f610e96565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107e0565b600054610100900460ff1615808015610b005750600054600160ff909116105b80610b1a5750303b158015610b1a575060005460ff166001145b610b8c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805460ff191660011790558015610baf576000805461ff0019166101001790555b610bb7610ef0565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a180156106b4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107e0565b610c64610e96565b6001600160a01b038116610ce05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ac565b61054981610f63565b610549610e96565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d2957610d2483611002565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d83575060408051601f3d908101601f19168201909252610d8091810190611891565b60015b610df55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610e8a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016103ac565b50610d248383836110cd565b6033546001600160a01b031633146108f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ac565b600054610100900460ff16610f5b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f36110f8565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610549576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381163b61107f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6110d68361116c565b6000825111806110e35750805b15610d24576110f283836111ac565b50505050565b600054610100900460ff166111635760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f333610f63565b61117581611002565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606111d2838360405180606001604052806027815260200162006025602791396111d9565b9392505050565b6060600080856001600160a01b0316856040516111f691906118aa565b600060405180830381855af49150503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b509150915061124786838387611251565b9695505050505050565b606083156112c05782516000036112b9576001600160a01b0385163b6112b95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ac565b50816112ca565b6112ca83836112d2565b949350505050565b8151156112e25781518083602001fd5b8060405162461bcd60e51b81526004016103ac91906118c6565b61474b80620018da83390190565b6001600160a01b038116811461054957600080fd5b803561132a8161130a565b919050565b60006020828403121561134157600080fd5b81356111d28161130a565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156113865761138661134c565b60405290565b600067ffffffffffffffff808411156113a7576113a761134c565b604051601f8501601f19908116603f011681019082821181831017156113cf576113cf61134c565b816040528093508581528686860111156113e857600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121561141557600080fd5b82356114208161130a565b9150602083013567ffffffffffffffff81111561143c57600080fd5b8301601f8101851361144d57600080fd5b61145c8582356020840161138c565b9150509250929050565b8035801515811461132a57600080fd5b6000806040838503121561148957600080fd5b82356114948161130a565b91506114a260208401611466565b90509250929050565b600082601f8301126114bc57600080fd5b6111d28383356020850161138c565b6000604082840312156114dd57600080fd5b6040516040810167ffffffffffffffff82821081831117156115015761150161134c565b8160405282935084358352602085013591508082111561152057600080fd5b5061152d858286016114ab565b6020830152505092915050565b60006020828403121561154c57600080fd5b813567ffffffffffffffff8082111561156457600080fd5b908301906101a0828603121561157957600080fd5b611581611362565b61158a8361131f565b81526115986020840161131f565b60208201526040830135604082015260608301356060820152608083013560808201526115c760a0840161131f565b60a08201526115d860c0840161131f565b60c082015260e0830135828111156115ef57600080fd5b6115fb878286016114cb565b60e08301525061010061160f81850161131f565b90820152610120838101358381111561162757600080fd5b611633888287016114ab565b828401525050610140611647818501611466565b90820152610160838101358381111561165f57600080fd5b61166b888287016114ab565b828401525050610180915061168182840161131f565b91810191909152949350505050565b600080604083850312156116a357600080fd5b82356116ae8161130a565b946020939093013593505050565b6000600182016116dc57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156116fe5781810151838201526020016116e6565b50506000910152565b6000815180845261171f8160208601602086016116e3565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526112ca6040850182611707565b6020815261176c6020820183516001600160a01b03169052565b6000602083015161178860408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516117c160c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526117f56101c0860184611733565b90860151909250610120611813868201836001600160a01b03169052565b80870151915050601f196101408187860301818801526118338584611707565b94508088015192505061016061184c8188018415159052565b808801519250506101808187860301818801526118698584611707565b94508088015192505050611887828601826001600160a01b03169052565b5090949350505050565b6000602082840312156118a357600080fd5b5051919050565b600082516118bc8184602087016116e3565b9190910192915050565b6020815260006111d2602083018461170756fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a2646970667358221220562a0dab546f223a23db1e43e5f443652e195a255b78053dbf9421b5a163d63464736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220ee07bff90952a212f54dc79d31407cb2ee86de906b055b44e2fd47e77254811164736f6c63430008130033","sourceMap":"422:639:134:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:249:133;;;;;;;;;;-1:-1:-1;3434:249:133;;;;;:::i;:::-;;:::i;:::-;;;710:25:144;;;698:2;683:18;3434:249:133;;;;;;;;3143:195:68;;;;;;;;;;-1:-1:-1;3143:195:68;;;;;:::i;:::-;;:::i;:::-;;3657:220;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;3070:208:133:-;;;;;;;;;;-1:-1:-1;3070:208:133;;;;;:::i;:::-;;:::i;978:81:134:-;;;;;;;;;;;;;:::i;2085:101:47:-;;;;;;;;;;;;;:::i;2497:222:133:-;;;;;;;;;;-1:-1:-1;2497:222:133;;;;;:::i;:::-;;:::i;1957:534::-;;;;;;;;;;-1:-1:-1;1957:534:133;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5932:55:144;;;5914:74;;5902:2;5887:18;1957:534:133;5768:226:144;1462:85:47;;;;;;;;;;-1:-1:-1;1534:6:47;;-1:-1:-1;;;;;1534:6:47;1462:85;;2725:115:133;;;;;;;;;;-1:-1:-1;2815:18:133;;-1:-1:-1;;;;;2815:18:133;2725:115;;573:20;;;;;;;;;;;;;;;;2846:218;;;;;;;;;;-1:-1:-1;2846:218:133;;;;;:::i;:::-;;:::i;655:33::-;;;;;;;;;;-1:-1:-1;655:33:133;;;;-1:-1:-1;;;;;655:33:133;;;1659:292;;;;;;;;;;-1:-1:-1;1659:292:133;;;;;:::i;:::-;;:::i;2335:198:47:-;;;;;;;;;;-1:-1:-1;2335:198:47;;;;;:::i;:::-;;:::i;3284:144:133:-;;;;;;;;;;-1:-1:-1;3284:144:133;;;;;:::i;:::-;-1:-1:-1;;;;;3388:27:133;3365:4;3388:27;;;:15;:27;;;;;:33;;;;;;3284:144;;;;6580:14:144;;6573:22;6555:41;;6543:2;6528:18;3284:144:133;6415:187:144;3434:249:133;-1:-1:-1;;;;;3533:27:133;;3509:7;3533:27;;;:15;:27;;;;;:33;;;;;3528:100;;3589:28;;;;;-1:-1:-1;;;;;5932:55:144;;3589:28:133;;;5914:74:144;5887:18;;3589:28:133;;;;;;;;3528:100;-1:-1:-1;;;;;;3645:27:133;;;;;:15;:27;;;;;:31;;3434:249::o;3143:195:68:-;-1:-1:-1;;;;;1654:6:68;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:68;;6809:2:144;1629:80:68;;;6791:21:144;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:144;;;6931:42;6990:19;;1629:80:68;6607:408:144;1629:80:68;1751:6;-1:-1:-1;;;;;1727:30:68;:20;1030:66:65;1254:54;-1:-1:-1;;;;;1254:54:65;;1175:140;1727:20:68;-1:-1:-1;;;;;1727:30:68;;1719:87;;;;-1:-1:-1;;;1719:87:68;;7222:2:144;1719:87:68;;;7204:21:144;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:144;;;7344:42;7403:19;;1719:87:68;7020:408:144;1719:87:68;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;:::-;3143:195:::0;:::o;3657:220::-;-1:-1:-1;;;;;1654:6:68;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:68;;6809:2:144;1629:80:68;;;6791:21:144;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:144;;;6931:42;6990:19;;1629:80:68;6607:408:144;1629:80:68;1751:6;-1:-1:-1;;;;;1727:30:68;:20;1030:66:65;1254:54;-1:-1:-1;;;;;1254:54:65;;1175:140;1727:20:68;-1:-1:-1;;;;;1727:30:68;;1719:87;;;;-1:-1:-1;;;1719:87:68;;7222:2:144;1719:87:68;;;7204:21:144;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:144;;;7344:42;7403:19;;1719:87:68;7020:408:144;1719:87:68;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;:::-;3657:220:::0;;:::o;2762:131::-;2840:7;2080:4;-1:-1:-1;;;;;2089:6:68;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:68;;7635:2:144;2064:92:68;;;7617:21:144;7674:2;7654:18;;;7647:30;7713:34;7693:18;;;7686:62;7784:26;7764:18;;;7757:54;7828:19;;2064:92:68;7433:420:144;2064:92:68;-1:-1:-1;1030:66:65::1;2762:131:68::0;:::o;3070:208:133:-;1355:13:47;:11;:13::i;:::-;-1:-1:-1;;;;;3170:27:133;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;3170:44:133::1;::::0;::::1;;::::0;;::::1;::::0;;;3229:42;;8026:74:144;;;8116:18;;;8109:50;3229:42:133::1;::::0;7999:18:144;3229:42:133::1;;;;;;;;3070:208:::0;;:::o;978:81:134:-;4882:13:49;;1023:1:134;;4882:13:49;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:49;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:49;;8372:2:144;4873:99:49;;;8354:21:144;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;8521:16;8501:18;;;8494:44;8555:19;;4873:99:49;8170:410:144;4873:99:49;4982:12;:22;;-1:-1:-1;;5014:20:49;4982:22;;;5014:20;4982:22;5014:20;;;1036:16:134::1;:14;:16::i;:::-;5071:5:49::0;5055:21;;-1:-1:-1;;5055:21:49;;;5091:20;;8757:4:144;8745:17;;8727:36;;5091:20:49;;8715:2:144;8700:18;5091:20:49;;;;;;;;978:81:134;:::o;2085:101:47:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2497:222:133:-;1355:13:47;:11;:13::i;:::-;2585:35:133::1;2604:15;2585:18;:35::i;:::-;2630:18;:36:::0;;-1:-1:-1;;2630:36:133::1;-1:-1:-1::0;;;;;2630:36:133;::::1;::::0;;::::1;::::0;;;2681:31:::1;::::0;5914:74:144;;;2681:31:133::1;::::0;5902:2:144;5887:18;2681:31:133::1;5768:226:144::0;1957:534:133;2079:31;2126:35;2164:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2213:5:133;:7;;2126:61;;-1:-1:-1;2213:5:133;:7;;;:::i;:::-;;;;-1:-1:-1;2197:13:133;;;:23;2264:4;2230:23;;;:39;2280:36;;;;;-1:-1:-1;;;;;2280:28:133;;;;;:36;;2197:6;;2280:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;2326:43:133;;;;;;:15;:43;;;;;;;;;2378:4;2326:49;;;:56;;-1:-1:-1;;2326:56:133;;;;;;2397:44;;5914:74:144;;;2397:44:133;;5887:18:144;2397:44:133;;;;;;;2466:17;1957:534;-1:-1:-1;;1957:534:133:o;2846:218::-;1355:13:47;:11;:13::i;:::-;-1:-1:-1;;;;;2950:27:133;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;3014:43;;11911:74:144;;;12001:18;;11994:34;;;3014:43:133::1;::::0;11884:18:144;3014:43:133::1;11737:297:144::0;1659:292:133;3279:19:49;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:49;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:49;1713:19:52;:23;;;3387:66:49;;-1:-1:-1;3436:12:49;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:49;;8372:2:144;3325:201:49;;;8354:21:144;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;8521:16;8501:18;;;8494:44;8555:19;;3325:201:49;8170:410:144;3325:201:49;3536:12;:16;;-1:-1:-1;;3536:16:49;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:49;;;;;3562:65;1745:16:133::1;:14;:16::i;:::-;1779:1;1771:5;:9:::0;1790:18:::1;:40:::0;;-1:-1:-1;;1790:40:133::1;-1:-1:-1::0;;;;;1790:40:133;::::1;::::0;;::::1;::::0;;;1845:35:::1;::::0;5914:74:144;;;1845:35:133::1;::::0;5902:2:144;5887:18;1845:35:133::1;;;;;;;3651:14:49::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:49;;;3721:14;;-1:-1:-1;8727:36:144;;3721:14:49;;8715:2:144;8700:18;3721:14:49;8585:184:144;2335:198:47;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:47;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:47;;12440:2:144;2415:73:47::1;::::0;::::1;12422:21:144::0;12479:2;12459:18;;;12452:30;12518:34;12498:18;;;12491:62;12589:8;12569:18;;;12562:36;12615:19;;2415:73:47::1;12238:402:144::0;2415:73:47::1;2498:28;2517:8;2498:18;:28::i;3689:66:133:-:0;1355:13:47;:11;:13::i;2494:922:65:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;:::-;2494:922;;;:::o;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:65;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:65;;;;;;;;-1:-1:-1;;3046:52:65;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:65;;13036:2:144;3262:56:65;;;13018:21:144;13075:2;13055:18;;;13048:30;13114:34;13094:18;;;13087:62;13185:16;13165:18;;;13158:44;13219:19;;3262:56:65;12834:410:144;3042:291:65;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:65;;13451:2:144;3140:82:65;;;13433:21:144;13490:2;13470:18;;;13463:30;13529:34;13509:18;;;13502:62;13600:11;13580:18;;;13573:39;13629:19;;3140:82:65;13249:405:144;3140:82:65;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;1620:130:47:-;1534:6;;-1:-1:-1;;;;;1534:6:47;965:10:53;1683:23:47;1675:68;;;;-1:-1:-1;;;1675:68:47;;13861:2:144;1675:68:47;;;13843:21:144;;;13880:18;;;13873:30;13939:34;13919:18;;;13912:62;13991:18;;1675:68:47;13659:356:144;1024:95:47;5374:13:49;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:49;;14222:2:144;5366:69:49;;;14204:21:144;14261:2;14241:18;;;14234:30;14300:34;14280:18;;;14273:62;-1:-1:-1;;;14351:18:144;;;14344:41;14402:19;;5366:69:49;14020:407:144;5366:69:49;1086:26:47::1;:24;:26::i;2687:187::-:0;2779:6;;;-1:-1:-1;;;;;2795:17:47;;;-1:-1:-1;;2795:17:47;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1520:133:133:-;-1:-1:-1;;;;;1594:22:133;;1590:56;;1625:21;;;;;;;;;;;;;;1406:259:65;-1:-1:-1;;;;;1713:19:52;;;1479:95:65;;;;-1:-1:-1;;;1479:95:65;;14634:2:144;1479:95:65;;;14616:21:144;14673:2;14653:18;;;14646:30;14712:34;14692:18;;;14685:62;14783:15;14763:18;;;14756:43;14816:19;;1479:95:65;14432:409:144;1479:95:65;1030:66;1584:74;;-1:-1:-1;;1584:74:65;-1:-1:-1;;;;;1584:74:65;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2057:265;;;:::o;1125:111:47:-;5374:13:49;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:49;;14222:2:144;5366:69:49;;;14204:21:144;14261:2;14241:18;;;14234:30;14300:34;14280:18;;;14273:62;-1:-1:-1;;;14351:18:144;;;14344:41;14402:19;;5366:69:49;14020:407:144;5366:69:49;1197:32:47::1;965:10:53::0;1197:18:47::1;:32::i;1771:152:65:-:0;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:65;;;;;;;;1771:152;:::o;6674:198:80:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:80:o;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:80;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:80:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:52;;;8113:60:80;;;;-1:-1:-1;;;8113:60:80;;15340:2:144;8113:60:80;;;15322:21:144;15379:2;15359:18;;;15352:30;15418:31;15398:18;;;15391:59;15467:18;;8113:60:80;15138:353:144;8113:60:80;-1:-1:-1;8208:10:80;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:80;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;:::o;14:154:144:-;-1:-1:-1;;;;;93:5:144;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;746:184::-;-1:-1:-1;;;795:1:144;788:88;895:4;892:1;885:15;919:4;916:1;909:15;935:250;1002:2;996:9;1044:6;1032:19;;1081:18;1066:34;;1102:22;;;1063:62;1060:88;;;1128:18;;:::i;:::-;1164:2;1157:22;935:250;:::o;1190:631::-;1254:5;1284:18;1325:2;1317:6;1314:14;1311:40;;;1331:18;;:::i;:::-;1406:2;1400:9;1374:2;1460:15;;-1:-1:-1;;1456:24:144;;;1482:2;1452:33;1448:42;1436:55;;;1506:18;;;1526:22;;;1503:46;1500:72;;;1552:18;;:::i;:::-;1592:10;1588:2;1581:22;1621:6;1612:15;;1651:6;1643;1636:22;1691:3;1682:6;1677:3;1673:16;1670:25;1667:45;;;1708:1;1705;1698:12;1667:45;1758:6;1753:3;1746:4;1738:6;1734:17;1721:44;1813:1;1806:4;1797:6;1789;1785:19;1781:30;1774:41;;;;1190:631;;;;;:::o;1826:584::-;1903:6;1911;1964:2;1952:9;1943:7;1939:23;1935:32;1932:52;;;1980:1;1977;1970:12;1932:52;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;-1:-1:-1;2144:2:144;2129:18;;2116:32;2171:18;2160:30;;2157:50;;;2203:1;2200;2193:12;2157:50;2226:22;;2279:4;2271:13;;2267:27;-1:-1:-1;2257:55:144;;2308:1;2305;2298:12;2257:55;2331:73;2396:7;2391:2;2378:16;2373:2;2369;2365:11;2331:73;:::i;:::-;2321:83;;;1826:584;;;;;:::o;2597:160::-;2662:20;;2718:13;;2711:21;2701:32;;2691:60;;2747:1;2744;2737:12;2762:315;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;2943:9;2930:23;2962:31;2987:5;2962:31;:::i;:::-;3012:5;-1:-1:-1;3036:35:144;3067:2;3052:18;;3036:35;:::i;:::-;3026:45;;2762:315;;;;;:::o;3082:221::-;3125:5;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;3218:79;3293:3;3284:6;3271:20;3264:4;3256:6;3252:17;3218:79;:::i;3308:610::-;3363:5;3411:4;3399:9;3394:3;3390:19;3386:30;3383:50;;;3429:1;3426;3419:12;3383:50;3462:4;3456:11;3506:4;3498:6;3494:17;3530:18;3598:6;3586:10;3583:22;3578:2;3566:10;3563:18;3560:46;3557:72;;;3609:18;;:::i;:::-;3651:10;3645:4;3638:24;3680:6;3671:15;;3723:9;3710:23;3702:6;3695:39;3785:2;3774:9;3770:18;3757:32;3743:46;;3812:2;3804:6;3801:14;3798:34;;;3828:1;3825;3818:12;3798:34;;3865:46;3907:3;3898:6;3887:9;3883:22;3865:46;:::i;:::-;3860:2;3852:6;3848:15;3841:71;;;3308:610;;;;:::o;3923:1708::-;4017:6;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4126:9;4113:23;4155:18;4196:2;4188:6;4185:14;4182:34;;;4212:1;4209;4202:12;4182:34;4235:22;;;;4291:6;4273:16;;;4269:29;4266:49;;;4311:1;4308;4301:12;4266:49;4337:17;;:::i;:::-;4377:22;4396:2;4377:22;:::i;:::-;4370:5;4363:37;4432:31;4459:2;4455;4451:11;4432:31;:::i;:::-;4427:2;4420:5;4416:14;4409:55;4517:2;4513;4509:11;4496:25;4491:2;4484:5;4480:14;4473:49;4575:2;4571;4567:11;4554:25;4549:2;4542:5;4538:14;4531:49;4634:3;4630:2;4626:12;4613:26;4607:3;4600:5;4596:15;4589:51;4673:32;4700:3;4696:2;4692:12;4673:32;:::i;:::-;4667:3;4660:5;4656:15;4649:57;4739:32;4766:3;4762:2;4758:12;4739:32;:::i;:::-;4733:3;4726:5;4722:15;4715:57;4818:3;4814:2;4810:12;4797:26;4848:2;4838:8;4835:16;4832:36;;;4864:1;4861;4854:12;4832:36;4901:54;4947:7;4936:8;4932:2;4928:17;4901:54;:::i;:::-;4895:3;4888:5;4884:15;4877:79;;4975:3;5010:31;5037:2;5033;5029:11;5010:31;:::i;:::-;4994:14;;;4987:55;5061:3;5102:11;;;5089:25;5126:16;;;5123:36;;;5155:1;5152;5145:12;5123:36;5191:45;5228:7;5217:8;5213:2;5209:17;5191:45;:::i;:::-;5186:2;5179:5;5175:14;5168:69;;;5256:3;5291:28;5315:2;5311;5307:11;5291:28;:::i;:::-;5275:14;;;5268:52;5339:3;5380:11;;;5367:25;5404:16;;;5401:36;;;5433:1;5430;5423:12;5401:36;5469:45;5506:7;5495:8;5491:2;5487:17;5469:45;:::i;:::-;5464:2;5457:5;5453:14;5446:69;;;5534:3;5524:13;;5569:31;5596:2;5592;5588:11;5569:31;:::i;:::-;5553:14;;;5546:55;;;;5557:5;3923:1708;-1:-1:-1;;;;3923:1708:144:o;5999:315::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;6304:2;6289:18;;;;6276:32;;-1:-1:-1;;;5999:315:144:o;8774:289::-;8813:3;8834:17;;;8831:197;;-1:-1:-1;;;8881:1:144;8874:88;8985:4;8982:1;8975:15;9013:4;9010:1;9003:15;8831:197;-1:-1:-1;9055:1:144;9044:13;;8774:289::o;9068:250::-;9153:1;9163:113;9177:6;9174:1;9171:13;9163:113;;;9253:11;;;9247:18;9234:11;;;9227:39;9199:2;9192:10;9163:113;;;-1:-1:-1;;9310:1:144;9292:16;;9285:27;9068:250::o;9323:271::-;9365:3;9403:5;9397:12;9430:6;9425:3;9418:19;9446:76;9515:6;9508:4;9503:3;9499:14;9492:4;9485:5;9481:16;9446:76;:::i;:::-;9576:2;9555:15;-1:-1:-1;;9551:29:144;9542:39;;;;9583:4;9538:50;;9323:271;-1:-1:-1;;9323:271:144:o;9599:252::-;9686:5;9680:12;9675:3;9668:25;9650:3;9739:4;9732:5;9728:16;9722:23;9777:4;9770;9765:3;9761:14;9754:28;9798:47;9839:4;9834:3;9830:14;9816:12;9798:47;:::i;9856:1876::-;10055:2;10044:9;10037:21;10067:53;10116:2;10105:9;10101:18;10092:6;10086:13;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;10067:53;10018:4;10167:2;10159:6;10155:15;10149:22;10180:52;10228:2;10217:9;10213:18;10199:12;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;10180:52;;10286:2;10278:6;10274:15;10268:22;10263:2;10252:9;10248:18;10241:50;10346:2;10338:6;10334:15;10328:22;10322:3;10311:9;10307:19;10300:51;10406:3;10398:6;10394:16;10388:23;10382:3;10371:9;10367:19;10360:52;10461:3;10453:6;10449:16;10443:23;10475:55;10525:3;10514:9;10510:19;10494:14;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;10475:55;-1:-1:-1;10579:3:144;10567:16;;10561:23;-1:-1:-1;;;;;5702:54:144;;10643:3;10628:19;;5690:67;10593:55;10697:3;10689:6;10685:16;10679:23;10721:6;10746:3;10785:2;10780;10769:9;10765:18;10758:30;10811:63;10869:3;10858:9;10854:19;10838:14;10811:63;:::i;:::-;10911:15;;;10905:22;10797:77;;-1:-1:-1;10946:3:144;10958:54;10993:18;;;10905:22;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;10958:54;11061:2;11053:6;11049:15;11043:22;11021:44;;;11088:2;11084:7;11110:3;11177:2;11165:9;11157:6;11153:22;11149:31;11144:2;11133:9;11129:18;11122:59;11204:41;11238:6;11222:14;11204:41;:::i;:::-;11190:55;;11294:2;11286:6;11282:15;11276:22;11254:44;;;11317:3;11329:51;11376:2;11365:9;11361:18;11345:14;6389:13;6382:21;6370:34;;6319:91;11329:51;11429:2;11421:6;11417:15;11411:22;11389:44;;;11452:3;11519:2;11507:9;11499:6;11495:22;11491:31;11486:2;11475:9;11471:18;11464:59;11546:41;11580:6;11564:14;11546:41;:::i;:::-;11532:55;;11636:2;11628:6;11624:15;11618:22;11596:44;;;;11649:54;11699:2;11688:9;11684:18;11668:14;-1:-1:-1;;;;;5702:54:144;5690:67;;5636:127;11649:54;-1:-1:-1;11720:6:144;;9856:1876;-1:-1:-1;;;;9856:1876:144:o;12645:184::-;12715:6;12768:2;12756:9;12747:7;12743:23;12739:32;12736:52;;;12784:1;12781;12774:12;12736:52;-1:-1:-1;12807:16:144;;12645:184;-1:-1:-1;12645:184:144:o;14846:287::-;14975:3;15013:6;15007:13;15029:66;15088:6;15083:3;15076:4;15068:6;15064:17;15029:66;:::i;:::-;15111:16;;;;;14846:287;-1:-1:-1;;14846:287:144:o;15496:220::-;15645:2;15634:9;15627:21;15608:4;15665:45;15706:2;15695:9;15691:18;15683:6;15665:45;:::i","linkReferences":{},"immutableReferences":{"56161":[{"start":987,"length":32},{"start":1120,"length":32},{"start":1366,"length":32},{"start":1499,"length":32},{"start":1733,"length":32}]}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","initialize(address)":"c4d66de8","initializeV2()":"5cd8a76b","nonce()":"affed0e0","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gardensFeeReceiver\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-from\":\"RegistryFactoryV0_0\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactoryV0_1.sol\":\"RegistryFactoryV0_1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2\",\"dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh\"]},\"pkg/contracts/src/RegistryFactoryV0_0.sol\":{\"keccak256\":\"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587\",\"dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut\"]},\"pkg/contracts/src/RegistryFactoryV0_1.sol\":{\"keccak256\":\"0xd26de80bc3abac11b0c8671a6aaaa9d422fb05b704f61fc3b8fbdb6285dacdc6\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://298ed925474fd1da221c531d775bd0008125fb1bd29e700dca512d62be227b7b\",\"dweb:/ipfs/QmekeaeBg2c4HypDptinsZDrz6KNm5iCE4RTprKJgXAjpa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_gardensFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initializeV2"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactoryV0_1.sol":"RegistryFactoryV0_1"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x2e5bc87c462dc8cc80a03ca564584efe15c302de9b42f12d7d43f5c8f160320f","urls":["bzz-raw://2c6c9b1aba204e76a2ec28c89f110d2aaa82ee85fd88bfc1f4390cca6694d0f2","dweb:/ipfs/QmfJHzF6zTKgjer2HTAeieGHQQzCyd94eMiSuhL5QkrHHh"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_0.sol":{"keccak256":"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9","urls":["bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587","dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_1.sol":{"keccak256":"0xd26de80bc3abac11b0c8671a6aaaa9d422fb05b704f61fc3b8fbdb6285dacdc6","urls":["bzz-raw://298ed925474fd1da221c531d775bd0008125fb1bd29e700dca512d62be227b7b","dweb:/ipfs/QmekeaeBg2c4HypDptinsZDrz6KNm5iCE4RTprKJgXAjpa"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53246,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53249,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53951,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":53038,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":53158,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":78171,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"nonce","offset":0,"slot":"101","type":"t_uint256"},{"astId":78176,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"communityToInfo","offset":0,"slot":"102","type":"t_mapping(t_address,t_struct(CommunityInfo)78164_storage)"},{"astId":78178,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"gardensFeeReceiver","offset":0,"slot":"103","type":"t_address"},{"astId":78426,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"104","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)78164_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)78164_storage"},"t_struct(CommunityInfo)78164_storage":{"encoding":"inplace","label":"struct CommunityInfo","numberOfBytes":"64","members":[{"astId":78161,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":78163,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactoryV0_1.sol","id":78455,"exportedSymbols":{"CommunityInfo":[78440],"OwnableUpgradeable":[53159],"RegistryCommunity":[77913],"RegistryFactoryV0_0":[78427],"RegistryFactoryV0_1":[78454]},"nodeType":"SourceUnit","src":"42:1020:134","nodes":[{"id":78429,"nodeType":"PragmaDirective","src":"42:24:134","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":78431,"nodeType":"ImportDirective","src":"68:63:134","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":78455,"sourceUnit":77914,"symbolAliases":[{"foreign":{"id":78430,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77913,"src":"76:17:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78433,"nodeType":"ImportDirective","src":"133:67:134","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactoryV0_0.sol","file":"../src/RegistryFactoryV0_0.sol","nameLocation":"-1:-1:-1","scope":78455,"sourceUnit":78428,"symbolAliases":[{"foreign":{"id":78432,"name":"RegistryFactoryV0_0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78427,"src":"141:19:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78435,"nodeType":"ImportDirective","src":"202:110:134","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78455,"sourceUnit":53160,"symbolAliases":[{"foreign":{"id":78434,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53159,"src":"210:18:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78440,"nodeType":"StructDefinition","src":"314:57:134","nodes":[],"canonicalName":"CommunityInfo","members":[{"constant":false,"id":78437,"mutability":"mutable","name":"fee","nameLocation":"349:3:134","nodeType":"VariableDeclaration","scope":78440,"src":"341:11:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78436,"name":"uint256","nodeType":"ElementaryTypeName","src":"341:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78439,"mutability":"mutable","name":"valid","nameLocation":"363:5:134","nodeType":"VariableDeclaration","scope":78440,"src":"358:10:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78438,"name":"bool","nodeType":"ElementaryTypeName","src":"358:4:134","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"321:13:134","scope":78455,"visibility":"public"},{"id":78454,"nodeType":"ContractDefinition","src":"422:639:134","nodes":[{"id":78453,"nodeType":"FunctionDefinition","src":"978:81:134","nodes":[],"body":{"id":78452,"nodeType":"Block","src":"1026:33:134","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78449,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53054,"src":"1036:14:134","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:16:134","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78451,"nodeType":"ExpressionStatement","src":"1036:16:134"}]},"functionSelector":"5cd8a76b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"32","id":78446,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:1:134","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78447,"kind":"modifierInvocation","modifierName":{"id":78445,"name":"reinitializer","nameLocations":["1009:13:134"],"nodeType":"IdentifierPath","referencedDeclaration":53343,"src":"1009:13:134"},"nodeType":"ModifierInvocation","src":"1009:16:134"}],"name":"initializeV2","nameLocation":"987:12:134","parameters":{"id":78444,"nodeType":"ParameterList","parameters":[],"src":"999:2:134"},"returnParameters":{"id":78448,"nodeType":"ParameterList","parameters":[],"src":"1026:0:134"},"scope":78454,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":78442,"name":"RegistryFactoryV0_0","nameLocations":["454:19:134"],"nodeType":"IdentifierPath","referencedDeclaration":78427,"src":"454:19:134"},"id":78443,"nodeType":"InheritanceSpecifier","src":"454:19:134"}],"canonicalName":"RegistryFactoryV0_1","contractDependencies":[77913],"contractKind":"contract","documentation":{"id":78441,"nodeType":"StructuredDocumentation","src":"372:49:134","text":"@custom:oz-upgrades-from RegistryFactoryV0_0"},"fullyImplemented":true,"linearizedBaseContracts":[78454,78427,56261,56083,55732,55742,53159,53952,53408],"name":"RegistryFactoryV0_1","nameLocation":"431:19:134","scope":78455,"usedErrors":[78202,78204]}],"license":"AGPL-3.0-only"},"id":134} \ No newline at end of file diff --git a/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json b/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json index 890554b63..3bd687d1d 100644 --- a/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json +++ b/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b5061177b8061003d6000396000f3fe608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212200801245306a6bdefeee42d1df364f1616dd4203fdb9b87d12671e5e3929483aa64736f6c63430008130033","sourceMap":"393:304:47:-:0;;;3126:44:54;;;3166:4;-1:-1:-1;;3126:44:54;;;;;;;;1016:26:64;;;;;;;;;;;393:304:47;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212200801245306a6bdefeee42d1df364f1616dd4203fdb9b87d12671e5e3929483aa64736f6c63430008130033","sourceMap":"393:304:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:45;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:122;;;160:74;;148:2;133:18;1763:107:45;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;2452:134:57:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;1331:118:45:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:57:-;;;:::i;:::-;;;;;;;:::i;1876:107:45:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:47:-;678:10;;;;;-1:-1:-1;;;;;678:10:47;610:85;;2673:113:45;;;:::i;439:101::-;;;:::i;2592:140:57:-;;;:::i;:::-;;;;;;;:::i;1537:101:45:-;;;:::i;3485:113::-;;;:::i;3069:146:57:-;;;:::i;3604:241:45:-;;;:::i;3938:101::-;;;:::i;2157:141:57:-;;;:::i;1243:204:53:-;;;:::i;:::-;;;6098:14:122;;6091:22;6073:41;;6061:2;6046:18;1243:204:53;5933:187:122;1644:113:45;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:57:-;;;:::i;3241:119:45:-;;;:::i;1016:26:64:-;;;;;;;;;1763:107:45;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:57:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:57;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:57;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:57;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:45:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:45;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:57:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:45;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:45;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:45;;;-1:-1:-1;;;;;2926:32:45;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:45;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:45:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:45;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:45;;;-1:-1:-1;;;;;2120:29:45;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:57:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:45;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:57:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:45;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:45;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:45;;;-1:-1:-1;;;;;3738:32:45;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:57:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:53;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:53;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7366:74:122;;;1398:17:53;7456:18:122;;;7449:34;1428:1:53;;1377:7;;7339:18:122;;1377:39:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:45:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:57:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:57;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:45:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:55;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:55;20439:125;-1:-1:-1;;20439:125:55:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:55;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;8123:25:122;;;20293:33:55;-1:-1:-1;20344:7:55;;;;8096:18:122;;20344:19:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:55;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;245:681:122:-;416:2;468:21;;;538:13;;441:18;;;560:22;;;387:4;;416:2;639:15;;;;613:2;598:18;;;387:4;682:218;696:6;693:1;690:13;682:218;;;761:13;;-1:-1:-1;;;;;757:62:122;745:75;;875:15;;;;840:12;;;;718:1;711:9;682:218;;;-1:-1:-1;917:3:122;;245:681;-1:-1:-1;;;;;;245:681:122:o;931:250::-;1016:1;1026:113;1040:6;1037:1;1034:13;1026:113;;;1116:11;;;1110:18;1097:11;;;1090:39;1062:2;1055:10;1026:113;;;-1:-1:-1;;1173:1:122;1155:16;;1148:27;931:250::o;1186:271::-;1228:3;1266:5;1260:12;1293:6;1288:3;1281:19;1309:76;1378:6;1371:4;1366:3;1362:14;1355:4;1348:5;1344:16;1309:76;:::i;:::-;1439:2;1418:15;-1:-1:-1;;1414:29:122;1405:39;;;;1446:4;1401:50;;1186:271;-1:-1:-1;;1186:271:122:o;1462:1767::-;1697:2;1749:21;;;1819:13;;1722:18;;;1841:22;;;1668:4;;1697:2;1882;;1900:18;;;;1937:1;1980:15;;;1965:31;;1961:40;;2024:15;;;1668:4;;2088:1112;2104:6;2099:3;2096:15;2088:1112;;;-1:-1:-1;;2173:22:122;;;2169:36;2157:49;;2229:13;;2316:9;;-1:-1:-1;;;;;2312:58:122;2297:74;;2410:11;;2404:18;2442:15;;;2435:27;;;2523:19;;2269:15;;;2555:24;;;2736:21;;;;2602:2;2684:17;;;2672:30;;2668:39;;;2626:15;;;;2781:1;2795:296;2811:8;2806:3;2803:17;2795:296;;;2917:2;2913:7;2904:6;2896;2892:19;2888:33;2881:5;2874:48;2949:42;2984:6;2973:8;2967:15;2949:42;:::i;:::-;3020:17;;;;2939:52;-1:-1:-1;3063:14:122;;;;2839:1;2830:11;2795:296;;;-1:-1:-1;;;3178:12:122;;;;3114:6;-1:-1:-1;;3143:15:122;;;;2130:1;2121:11;2088:1112;;;-1:-1:-1;3217:6:122;;1462:1767;-1:-1:-1;;;;;;;;;;1462:1767:122:o;3234:1638::-;3438:4;3467:2;3507;3496:9;3492:18;3537:2;3526:9;3519:21;3560:6;3595;3589:13;3626:6;3618;3611:22;3652:2;3642:12;;3685:2;3674:9;3670:18;3663:25;;3747:2;3737:6;3734:1;3730:14;3719:9;3715:30;3711:39;3785:2;3777:6;3773:15;3806:1;3827;3837:1006;3853:6;3848:3;3845:15;3837:1006;;;3922:22;;;-1:-1:-1;;3918:36:122;3906:49;;3978:13;;4065:9;;-1:-1:-1;;;;;4061:58:122;4046:74;;4159:11;;4153:18;4191:15;;;4184:27;;;4272:19;;4018:15;;;4304:24;;;4394:21;;;;4439:1;;4362:2;4350:15;;;4453:282;4469:8;4464:3;4461:17;4453:282;;;4550:15;;4567:66;4546:88;4532:103;;4704:17;;;;4497:1;4488:11;;;;;4661:14;;;;4453:282;;;-1:-1:-1;4821:12:122;;;;4758:5;-1:-1:-1;;;4786:15:122;;;;3879:1;3870:11;3837:1006;;;-1:-1:-1;4860:6:122;;3234:1638;-1:-1:-1;;;;;;;;;3234:1638:122:o;5125:803::-;5287:4;5316:2;5356;5345:9;5341:18;5386:2;5375:9;5368:21;5409:6;5444;5438:13;5475:6;5467;5460:22;5513:2;5502:9;5498:18;5491:25;;5575:2;5565:6;5562:1;5558:14;5547:9;5543:30;5539:39;5525:53;;5613:2;5605:6;5601:15;5634:1;5644:255;5658:6;5655:1;5652:13;5644:255;;;5751:2;5747:7;5735:9;5727:6;5723:22;5719:36;5714:3;5707:49;5779:40;5812:6;5803;5797:13;5779:40;:::i;:::-;5769:50;-1:-1:-1;5877:12:122;;;;5842:15;;;;5680:1;5673:9;5644:255;;;-1:-1:-1;5916:6:122;;5125:803;-1:-1:-1;;;;;;;5125:803:122:o;6372:437::-;6451:1;6447:12;;;;6494;;;6515:61;;6569:4;6561:6;6557:17;6547:27;;6515:61;6622:2;6614:6;6611:14;6591:18;6588:38;6585:218;;-1:-1:-1;;;6656:1:122;6649:88;6760:4;6757:1;6750:15;6788:4;6785:1;6778:15;6585:218;;6372:437;;;:::o;7003:184::-;-1:-1:-1;;;7052:1:122;7045:88;7152:4;7149:1;7142:15;7176:4;7173:1;7166:15;7494:184;7564:6;7617:2;7605:9;7596:7;7592:23;7588:32;7585:52;;;7633:1;7630;7623:12;7585:52;-1:-1:-1;7656:16:122;;7494:184;-1:-1:-1;7494:184:122:o;7683:289::-;7814:3;7852:6;7846:13;7868:66;7927:6;7922:3;7915:4;7907:6;7903:17;7868:66;:::i;:::-;7950:16;;;;;7683:289;-1:-1:-1;;7683:289:122:o;8159:313::-;8229:6;8282:2;8270:9;8261:7;8257:23;8253:32;8250:52;;;8298:1;8295;8288:12;8250:52;8330:9;8324:16;-1:-1:-1;;;;;8373:5:122;8369:54;8362:5;8359:65;8349:93;;8438:1;8435;8428:12;8349:93;8461:5;8159:313;-1:-1:-1;;;8159:313:122:o;8477:340::-;-1:-1:-1;;;;;8658:6:122;8654:55;8643:9;8636:74;8746:2;8741;8730:9;8726:18;8719:30;8617:4;8766:45;8807:2;8796:9;8792:18;8784:6;8766:45;:::i;:::-;8758:53;8477:340;-1:-1:-1;;;;8477:340:122:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetup\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup an empty Registry contract for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetup\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709\",\"dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetup"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831","urls":["bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709","dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b5061177b8061003d6000396000f3fe608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212202b8cd3d1abe5e7164277d6a0e7426e5a1338d8616d8e34f04ec577cab2c85bfe64736f6c63430008130033","sourceMap":"393:304:17:-:0;;;3126:44:24;;;3166:4;-1:-1:-1;;3126:44:24;;;;;;;;1016:26:34;;;;;;;;;;;393:304:17;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212202b8cd3d1abe5e7164277d6a0e7426e5a1338d8616d8e34f04ec577cab2c85bfe64736f6c63430008130033","sourceMap":"393:304:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:144;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;2452:134:27:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;1331:118:15:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:27:-;;;:::i;:::-;;;;;;;:::i;1876:107:15:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:17:-;678:10;;;;;-1:-1:-1;;;;;678:10:17;610:85;;2673:113:15;;;:::i;439:101::-;;;:::i;2592:140:27:-;;;:::i;:::-;;;;;;;:::i;1537:101:15:-;;;:::i;3485:113::-;;;:::i;3069:146:27:-;;;:::i;3604:241:15:-;;;:::i;3938:101::-;;;:::i;2157:141:27:-;;;:::i;1243:204:23:-;;;:::i;:::-;;;6098:14:144;;6091:22;6073:41;;6061:2;6046:18;1243:204:23;5933:187:144;1644:113:15;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:27:-;;;:::i;3241:119:15:-;;;:::i;1016:26:34:-;;;;;;;;;1763:107:15;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:27:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:27;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:27;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:27;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:27:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:15;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:27:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:15;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:27:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:15;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:27:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:23;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:23;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7366:74:144;;;1398:17:23;7456:18:144;;;7449:34;1428:1:23;;1377:7;;7339:18:144;;1377:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:15:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:27:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:27;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:25;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:25;20439:125;-1:-1:-1;;20439:125:25:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:25;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;8123:25:144;;;20293:33:25;-1:-1:-1;20344:7:25;;;;8096:18:144;;20344:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:25;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;245:681:144:-;416:2;468:21;;;538:13;;441:18;;;560:22;;;387:4;;416:2;639:15;;;;613:2;598:18;;;387:4;682:218;696:6;693:1;690:13;682:218;;;761:13;;-1:-1:-1;;;;;757:62:144;745:75;;875:15;;;;840:12;;;;718:1;711:9;682:218;;;-1:-1:-1;917:3:144;;245:681;-1:-1:-1;;;;;;245:681:144:o;931:250::-;1016:1;1026:113;1040:6;1037:1;1034:13;1026:113;;;1116:11;;;1110:18;1097:11;;;1090:39;1062:2;1055:10;1026:113;;;-1:-1:-1;;1173:1:144;1155:16;;1148:27;931:250::o;1186:271::-;1228:3;1266:5;1260:12;1293:6;1288:3;1281:19;1309:76;1378:6;1371:4;1366:3;1362:14;1355:4;1348:5;1344:16;1309:76;:::i;:::-;1439:2;1418:15;-1:-1:-1;;1414:29:144;1405:39;;;;1446:4;1401:50;;1186:271;-1:-1:-1;;1186:271:144:o;1462:1767::-;1697:2;1749:21;;;1819:13;;1722:18;;;1841:22;;;1668:4;;1697:2;1882;;1900:18;;;;1937:1;1980:15;;;1965:31;;1961:40;;2024:15;;;1668:4;;2088:1112;2104:6;2099:3;2096:15;2088:1112;;;-1:-1:-1;;2173:22:144;;;2169:36;2157:49;;2229:13;;2316:9;;-1:-1:-1;;;;;2312:58:144;2297:74;;2410:11;;2404:18;2442:15;;;2435:27;;;2523:19;;2269:15;;;2555:24;;;2736:21;;;;2602:2;2684:17;;;2672:30;;2668:39;;;2626:15;;;;2781:1;2795:296;2811:8;2806:3;2803:17;2795:296;;;2917:2;2913:7;2904:6;2896;2892:19;2888:33;2881:5;2874:48;2949:42;2984:6;2973:8;2967:15;2949:42;:::i;:::-;3020:17;;;;2939:52;-1:-1:-1;3063:14:144;;;;2839:1;2830:11;2795:296;;;-1:-1:-1;;;3178:12:144;;;;3114:6;-1:-1:-1;;3143:15:144;;;;2130:1;2121:11;2088:1112;;;-1:-1:-1;3217:6:144;;1462:1767;-1:-1:-1;;;;;;;;;;1462:1767:144:o;3234:1638::-;3438:4;3467:2;3507;3496:9;3492:18;3537:2;3526:9;3519:21;3560:6;3595;3589:13;3626:6;3618;3611:22;3652:2;3642:12;;3685:2;3674:9;3670:18;3663:25;;3747:2;3737:6;3734:1;3730:14;3719:9;3715:30;3711:39;3785:2;3777:6;3773:15;3806:1;3827;3837:1006;3853:6;3848:3;3845:15;3837:1006;;;3922:22;;;-1:-1:-1;;3918:36:144;3906:49;;3978:13;;4065:9;;-1:-1:-1;;;;;4061:58:144;4046:74;;4159:11;;4153:18;4191:15;;;4184:27;;;4272:19;;4018:15;;;4304:24;;;4394:21;;;;4439:1;;4362:2;4350:15;;;4453:282;4469:8;4464:3;4461:17;4453:282;;;4550:15;;4567:66;4546:88;4532:103;;4704:17;;;;4497:1;4488:11;;;;;4661:14;;;;4453:282;;;-1:-1:-1;4821:12:144;;;;4758:5;-1:-1:-1;;;4786:15:144;;;;3879:1;3870:11;3837:1006;;;-1:-1:-1;4860:6:144;;3234:1638;-1:-1:-1;;;;;;;;;3234:1638:144:o;5125:803::-;5287:4;5316:2;5356;5345:9;5341:18;5386:2;5375:9;5368:21;5409:6;5444;5438:13;5475:6;5467;5460:22;5513:2;5502:9;5498:18;5491:25;;5575:2;5565:6;5562:1;5558:14;5547:9;5543:30;5539:39;5525:53;;5613:2;5605:6;5601:15;5634:1;5644:255;5658:6;5655:1;5652:13;5644:255;;;5751:2;5747:7;5735:9;5727:6;5723:22;5719:36;5714:3;5707:49;5779:40;5812:6;5803;5797:13;5779:40;:::i;:::-;5769:50;-1:-1:-1;5877:12:144;;;;5842:15;;;;5680:1;5673:9;5644:255;;;-1:-1:-1;5916:6:144;;5125:803;-1:-1:-1;;;;;;;5125:803:144:o;6372:437::-;6451:1;6447:12;;;;6494;;;6515:61;;6569:4;6561:6;6557:17;6547:27;;6515:61;6622:2;6614:6;6611:14;6591:18;6588:38;6585:218;;-1:-1:-1;;;6656:1:144;6649:88;6760:4;6757:1;6750:15;6788:4;6785:1;6778:15;6585:218;;6372:437;;;:::o;7003:184::-;-1:-1:-1;;;7052:1:144;7045:88;7152:4;7149:1;7142:15;7176:4;7173:1;7166:15;7494:184;7564:6;7617:2;7605:9;7596:7;7592:23;7588:32;7585:52;;;7633:1;7630;7623:12;7585:52;-1:-1:-1;7656:16:144;;7494:184;-1:-1:-1;7494:184:144:o;7683:289::-;7814:3;7852:6;7846:13;7868:66;7927:6;7922:3;7915:4;7907:6;7903:17;7868:66;:::i;:::-;7950:16;;;;;7683:289;-1:-1:-1;;7683:289:144:o;8159:313::-;8229:6;8282:2;8270:9;8261:7;8257:23;8253:32;8250:52;;;8298:1;8295;8288:12;8250:52;8330:9;8324:16;-1:-1:-1;;;;;8373:5:144;8369:54;8362:5;8359:65;8349:93;;8438:1;8435;8428:12;8349:93;8461:5;8159:313;-1:-1:-1;;;8159:313:144:o;8477:340::-;-1:-1:-1;;;;;8658:6:144;8654:55;8643:9;8636:74;8746:2;8741;8730:9;8726:18;8719:30;8617:4;8766:45;8807:2;8796:9;8792:18;8784:6;8766:45;:::i;:::-;8758:53;8477:340;-1:-1:-1;;;;8477:340:144:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetup\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup an empty Registry contract for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetup\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetup"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":6047,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13452_storage"},{"astId":6243,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8744,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8765,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8760_storage)"},{"astId":8769,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8773,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8776,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9534,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11571,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13452_storage"},{"astId":12439,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12442,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12445,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12448,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12451,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12454,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12458,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage"},{"astId":12462,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage"},{"astId":12466,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12436_storage)dyn_storage"},{"astId":18051,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":5104,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_registry_","offset":1,"slot":"30","type":"t_contract(Registry)2295"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12436_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12436_storage"},"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12430_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(Registry)2295":{"encoding":"inplace","label":"contract Registry","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13427_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13427_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13427_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8760_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8760_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8760_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8753,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8755,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8757,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8759,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13427_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13420,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13422,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13424,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13426,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12436_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12432,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12435,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12430_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12426,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12429,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13452_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13436,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))"},{"astId":13439,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13441,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13443,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13445,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13447,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13449,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13451,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol","id":5297,"exportedSymbols":{"Accounts":[5026],"Metadata":[3098],"Registry":[2295],"RegistrySetup":[5132],"RegistrySetupFull":[5296],"StdAssertions":[8720],"StdChains":[9502],"StdCheats":[12355],"StdInvariant":[12680],"StdStorage":[13452],"StdStyle":[16622],"StdUtils":[18000],"Test":[18052],"TestBase":[6051],"Vm":[21702],"console":[29766],"console2":[37891],"safeconsole":[52616],"stdError":[12421],"stdJson":[13272],"stdMath":[13414],"stdStorage":[15411],"stdToml":[17214]},"nodeType":"SourceUnit","src":"42:2823:17","nodes":[{"id":5089,"nodeType":"PragmaDirective","src":"42:24:17","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5090,"nodeType":"ImportDirective","src":"68:28:17","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":18053,"symbolAliases":[],"unitAlias":""},{"id":5092,"nodeType":"ImportDirective","src":"98:62:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","file":"../../../contracts/core/Registry.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":2296,"symbolAliases":[{"foreign":{"id":5091,"name":"Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"106:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"161:72:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../../../contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":5093,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"169:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5096,"nodeType":"ImportDirective","src":"234:40:17","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"./Accounts.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":5095,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"242:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ContractDefinition","src":"393:304:17","nodes":[{"id":5104,"nodeType":"VariableDeclaration","src":"440:28:17","nodes":[],"constant":false,"mutability":"mutable","name":"_registry_","nameLocation":"458:10:17","scope":5132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5103,"nodeType":"UserDefinedTypeName","pathNode":{"id":5102,"name":"Registry","nameLocations":["440:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"440:8:17"},"referencedDeclaration":2295,"src":"440:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"},{"id":5122,"nodeType":"FunctionDefinition","src":"475:129:17","nodes":[],"body":{"id":5121,"nodeType":"Block","src":"511:93:17","nodes":[],"statements":[{"expression":{"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5107,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"521:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"534:12:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Registry_$2295_$","typeString":"function () returns (contract Registry)"},"typeName":{"id":5109,"nodeType":"UserDefinedTypeName","pathNode":{"id":5108,"name":"Registry","nameLocations":["538:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"538:8:17"},"referencedDeclaration":2295,"src":"538:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"src":"521:27:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5113,"nodeType":"ExpressionStatement","src":"521:27:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5117,"name":"registry_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"580:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5114,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"558:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1578,"src":"558:21:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5120,"nodeType":"ExpressionStatement","src":"558:39:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetup","nameLocation":"484:15:17","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[],"src":"499:2:17"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[],"src":"511:0:17"},"scope":5132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5131,"nodeType":"FunctionDefinition","src":"610:85:17","nodes":[],"body":{"id":5130,"nodeType":"Block","src":"661:34:17","nodes":[],"statements":[{"expression":{"id":5128,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"678:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"functionReturnParameters":5127,"id":5129,"nodeType":"Return","src":"671:17:17"}]},"functionSelector":"7b103999","implemented":true,"kind":"function","modifiers":[],"name":"registry","nameLocation":"619:8:17","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[],"src":"627:2:17"},"returnParameters":{"id":5127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5131,"src":"651:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5125,"nodeType":"UserDefinedTypeName","pathNode":{"id":5124,"name":"Registry","nameLocations":["651:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"651:8:17"},"referencedDeclaration":2295,"src":"651:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"}],"src":"650:10:17"},"scope":5132,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5098,"name":"Test","nameLocations":["419:4:17"],"nodeType":"IdentifierPath","referencedDeclaration":18052,"src":"419:4:17"},"id":5099,"nodeType":"InheritanceSpecifier","src":"419:4:17"},{"baseName":{"id":5100,"name":"Accounts","nameLocations":["425:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"425:8:17"},"id":5101,"nodeType":"InheritanceSpecifier","src":"425:8:17"}],"canonicalName":"RegistrySetup","contractDependencies":[],"contractKind":"contract","documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"276:117:17","text":"@title RegistrySetup\n @notice This contract is used to setup an empty Registry contract for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5132,5026,18052,18000,12680,12355,11562,9502,8720,6051,6048],"name":"RegistrySetup","nameLocation":"402:13:17","scope":5297,"usedErrors":[]},{"id":5296,"nodeType":"ContractDefinition","src":"833:2031:17","nodes":[{"id":5137,"nodeType":"VariableDeclaration","src":"883:32:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId_","nameLocation":"900:15:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5139,"nodeType":"VariableDeclaration","src":"921:36:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileAnchor_","nameLocation":"938:19:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5138,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5141,"nodeType":"VariableDeclaration","src":"964:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Id_","nameLocation":"981:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5143,"nodeType":"VariableDeclaration","src":"999:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Anchor_","nameLocation":"1016:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5142,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5145,"nodeType":"VariableDeclaration","src":"1039:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Id_","nameLocation":"1056:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5147,"nodeType":"VariableDeclaration","src":"1074:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Anchor_","nameLocation":"1091:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5146,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5247,"nodeType":"FunctionDefinition","src":"1114:930:17","nodes":[],"body":{"id":5246,"nodeType":"Block","src":"1154:890:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5150,"name":"__RegistrySetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"1164:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"ExpressionStatement","src":"1164:17:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5156,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1201:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1192:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1195:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21355,"src":"1192:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5159,"nodeType":"ExpressionStatement","src":"1192:22:17"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5160,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1224:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"506f6f6c2050726f66696c652031","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":5165,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1301:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1311:8:17","1324:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1301:48:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5169,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1351:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5171,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"1365:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5161,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1242:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1242:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:148:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1224:166:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"1224:166:17"},{"expression":{"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5176,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"1400:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5179,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1448:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5177,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1422:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1422:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1465:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1422:49:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1400:71:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5183,"nodeType":"ExpressionStatement","src":"1400:71:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5187,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1491:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1482:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1485:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21355,"src":"1482:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5190,"nodeType":"ExpressionStatement","src":"1482:26:17"},{"expression":{"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5191,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1518:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652031","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1574:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},"value":"Profile 1"},{"arguments":[{"hexValue":"31","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6531","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""},"value":"Profile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""}],"id":5196,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1587:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1597:8:17","1610:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1587:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5200,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1633:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5202,"name":"profile1_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"1651:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5192,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1533:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1533:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1533:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1518:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5206,"nodeType":"ExpressionStatement","src":"1518:161:17"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5207,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"1689:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5210,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1734:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5208,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1708:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1708:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1708:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1689:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5214,"nodeType":"ExpressionStatement","src":"1689:65:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5218,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1774:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1765:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21355,"src":"1765:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"1765:26:17"},{"expression":{"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"1801:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652032","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},"value":"Profile 2"},{"arguments":[{"hexValue":"31","id":5228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6532","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""},"value":"Profile2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""}],"id":5227,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1870:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1880:8:17","1893:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1870:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5231,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1916:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5233,"name":"profile2_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"1934:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5223,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1816:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1816:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1801:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5237,"nodeType":"ExpressionStatement","src":"1801:161:17"},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5238,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"1972:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5241,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2017:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5239,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1991:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2002:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1991:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2031:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1991:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1972:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"1972:65:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetupFull","nameLocation":"1123:19:17","parameters":{"id":5148,"nodeType":"ParameterList","parameters":[],"src":"1142:2:17"},"returnParameters":{"id":5149,"nodeType":"ParameterList","parameters":[],"src":"1154:0:17"},"scope":5296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5255,"nodeType":"FunctionDefinition","src":"2050:103:17","nodes":[],"body":{"id":5254,"nodeType":"Block","src":"2114:39:17","nodes":[],"statements":[{"expression":{"id":5252,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"2131:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5251,"id":5253,"nodeType":"Return","src":"2124:22:17"}]},"functionSelector":"fd325c60","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id","nameLocation":"2059:14:17","parameters":{"id":5248,"nodeType":"ParameterList","parameters":[],"src":"2073:2:17"},"returnParameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5255,"src":"2105:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2105:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2104:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5263,"nodeType":"FunctionDefinition","src":"2159:111:17","nodes":[],"body":{"id":5262,"nodeType":"Block","src":"2227:43:17","nodes":[],"statements":[{"expression":{"id":5260,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2244:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5259,"id":5261,"nodeType":"Return","src":"2237:26:17"}]},"functionSelector":"176effb3","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_anchor","nameLocation":"2168:18:17","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[],"src":"2186:2:17"},"returnParameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5263,"src":"2218:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5271,"nodeType":"FunctionDefinition","src":"2276:97:17","nodes":[],"body":{"id":5270,"nodeType":"Block","src":"2337:36:17","nodes":[],"statements":[{"expression":{"id":5268,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2354:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5267,"id":5269,"nodeType":"Return","src":"2347:19:17"}]},"functionSelector":"39f56f7f","implemented":true,"kind":"function","modifiers":[],"name":"profile1_id","nameLocation":"2285:11:17","parameters":{"id":5264,"nodeType":"ParameterList","parameters":[],"src":"2296:2:17"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5271,"src":"2328:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2328:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2327:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5279,"nodeType":"FunctionDefinition","src":"2461:105:17","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"2526:40:17","nodes":[],"statements":[{"expression":{"id":5276,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2543:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5275,"id":5277,"nodeType":"Return","src":"2536:23:17"}]},"functionSelector":"c5d7d73b","implemented":true,"kind":"function","modifiers":[],"name":"profile1_anchor","nameLocation":"2470:15:17","parameters":{"id":5272,"nodeType":"ParameterList","parameters":[],"src":"2485:2:17"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5279,"src":"2517:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2516:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5287,"nodeType":"FunctionDefinition","src":"2572:97:17","nodes":[],"body":{"id":5286,"nodeType":"Block","src":"2633:36:17","nodes":[],"statements":[{"expression":{"id":5284,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2650:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5283,"id":5285,"nodeType":"Return","src":"2643:19:17"}]},"functionSelector":"18540361","implemented":true,"kind":"function","modifiers":[],"name":"profile2_id","nameLocation":"2581:11:17","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"2592:2:17"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5287,"src":"2624:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"2757:105:17","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"2822:40:17","nodes":[],"statements":[{"expression":{"id":5292,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2839:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5291,"id":5293,"nodeType":"Return","src":"2832:23:17"}]},"functionSelector":"3554642a","implemented":true,"kind":"function","modifiers":[],"name":"profile2_anchor","nameLocation":"2766:15:17","parameters":{"id":5288,"nodeType":"ParameterList","parameters":[],"src":"2781:2:17"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"2813:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"2813:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2812:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5134,"name":"RegistrySetup","nameLocations":["863:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":5132,"src":"863:13:17"},"id":5135,"nodeType":"InheritanceSpecifier","src":"863:13:17"}],"canonicalName":"RegistrySetupFull","contractDependencies":[],"contractKind":"contract","documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"699:134:17","text":"@title RegistrySetupFull\n @notice This contract is used to setup a Registry contract with two identities for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5296,5132,5026,18052,18000,12680,12355,11562,9502,8720,6051,6048],"name":"RegistrySetupFull","nameLocation":"842:17:17","scope":5297,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":17} \ No newline at end of file diff --git a/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json b/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json index 481316b3f..2b2aa7b54 100644 --- a/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json +++ b/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolProfile_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile1_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile2_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b506118128061003d6000396000f3fe608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220d12c968c0ecb470680268759a9841fd9f558e002ea912a9cbad87f4810b2aacb64736f6c63430008130033","sourceMap":"833:2031:47:-:0;;;3126:44:54;;;3166:4;-1:-1:-1;;3126:44:54;;;;;;;;1016:26:64;;;;;;;;;;;833:2031:47;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220d12c968c0ecb470680268759a9841fd9f558e002ea912a9cbad87f4810b2aacb64736f6c63430008130033","sourceMap":"833:2031:47:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:45;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:122;;;160:74;;148:2;133:18;1763:107:45;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;2159:111:47;2244:19;;-1:-1:-1;;;;;2244:19:47;2159:111;;2572:97;2650:12;;2572:97;;;391:25:122;;;379:2;364:18;2572:97:47;245:177:122;3126:109:45;;;:::i;2554:113::-;;;:::i;2452:134:57:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;2757:105:47:-;2839:16;;-1:-1:-1;;;;;2839:16:47;2757:105;;2276:97;2354:12;;2276:97;;3221:133:57;;;:::i;2922:141::-;;;:::i;1331:118:45:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:57:-;;;:::i;:::-;;;;;;;:::i;1876:107:45:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:47:-;678:10;;;;;-1:-1:-1;;;;;678:10:47;610:85;;2673:113:45;;;:::i;439:101::-;;;:::i;2592:140:57:-;;;:::i;:::-;;;;;;;:::i;1537:101:45:-;;;:::i;3485:113::-;;;:::i;3069:146:57:-;;;:::i;3604:241:45:-;;;:::i;3938:101::-;;;:::i;2157:141:57:-;;;:::i;1243:204:53:-;;;:::i;:::-;;;6280:14:122;;6273:22;6255:41;;6243:2;6228:18;1243:204:53;6115:187:122;2461:105:47;2543:16;;-1:-1:-1;;;;;2543:16:47;2461:105;;1644:113:45;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:57:-;;;:::i;3241:119:45:-;;;:::i;1016:26:64:-;;;;;;;;;2050:103:47;2131:15;;2050:103;;1763:107:45;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:57:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:57;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:57;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:57;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:45:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:45;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:57:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:45;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:45;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:45;;;-1:-1:-1;;;;;2926:32:45;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:45;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:45:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:45;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:45;;;-1:-1:-1;;;;;2120:29:45;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:57:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:45;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:57:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:45;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:45;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:45;;;-1:-1:-1;;;;;3738:32:45;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:57:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:53;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:53;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7548:74:122;;;1398:17:53;7638:18:122;;;7631:34;1428:1:53;;1377:7;;7521:18:122;;1377:39:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:45:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:57:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:57;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:45:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:55;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:55;20439:125;-1:-1:-1;;20439:125:55:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:55;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:122;;;20293:33:55;-1:-1:-1;20344:7:55;;;;364:18:122;;20344:19:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:55;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;427:681:122:-;598:2;650:21;;;720:13;;623:18;;;742:22;;;569:4;;598:2;821:15;;;;795:2;780:18;;;569:4;864:218;878:6;875:1;872:13;864:218;;;943:13;;-1:-1:-1;;;;;939:62:122;927:75;;1057:15;;;;1022:12;;;;900:1;893:9;864:218;;;-1:-1:-1;1099:3:122;;427:681;-1:-1:-1;;;;;;427:681:122:o;1113:250::-;1198:1;1208:113;1222:6;1219:1;1216:13;1208:113;;;1298:11;;;1292:18;1279:11;;;1272:39;1244:2;1237:10;1208:113;;;-1:-1:-1;;1355:1:122;1337:16;;1330:27;1113:250::o;1368:271::-;1410:3;1448:5;1442:12;1475:6;1470:3;1463:19;1491:76;1560:6;1553:4;1548:3;1544:14;1537:4;1530:5;1526:16;1491:76;:::i;:::-;1621:2;1600:15;-1:-1:-1;;1596:29:122;1587:39;;;;1628:4;1583:50;;1368:271;-1:-1:-1;;1368:271:122:o;1644:1767::-;1879:2;1931:21;;;2001:13;;1904:18;;;2023:22;;;1850:4;;1879:2;2064;;2082:18;;;;2119:1;2162:15;;;2147:31;;2143:40;;2206:15;;;1850:4;;2270:1112;2286:6;2281:3;2278:15;2270:1112;;;-1:-1:-1;;2355:22:122;;;2351:36;2339:49;;2411:13;;2498:9;;-1:-1:-1;;;;;2494:58:122;2479:74;;2592:11;;2586:18;2624:15;;;2617:27;;;2705:19;;2451:15;;;2737:24;;;2918:21;;;;2784:2;2866:17;;;2854:30;;2850:39;;;2808:15;;;;2963:1;2977:296;2993:8;2988:3;2985:17;2977:296;;;3099:2;3095:7;3086:6;3078;3074:19;3070:33;3063:5;3056:48;3131:42;3166:6;3155:8;3149:15;3131:42;:::i;:::-;3202:17;;;;3121:52;-1:-1:-1;3245:14:122;;;;3021:1;3012:11;2977:296;;;-1:-1:-1;;;3360:12:122;;;;3296:6;-1:-1:-1;;3325:15:122;;;;2312:1;2303:11;2270:1112;;;-1:-1:-1;3399:6:122;;1644:1767;-1:-1:-1;;;;;;;;;;1644:1767:122:o;3416:1638::-;3620:4;3649:2;3689;3678:9;3674:18;3719:2;3708:9;3701:21;3742:6;3777;3771:13;3808:6;3800;3793:22;3834:2;3824:12;;3867:2;3856:9;3852:18;3845:25;;3929:2;3919:6;3916:1;3912:14;3901:9;3897:30;3893:39;3967:2;3959:6;3955:15;3988:1;4009;4019:1006;4035:6;4030:3;4027:15;4019:1006;;;4104:22;;;-1:-1:-1;;4100:36:122;4088:49;;4160:13;;4247:9;;-1:-1:-1;;;;;4243:58:122;4228:74;;4341:11;;4335:18;4373:15;;;4366:27;;;4454:19;;4200:15;;;4486:24;;;4576:21;;;;4621:1;;4544:2;4532:15;;;4635:282;4651:8;4646:3;4643:17;4635:282;;;4732:15;;4749:66;4728:88;4714:103;;4886:17;;;;4679:1;4670:11;;;;;4843:14;;;;4635:282;;;-1:-1:-1;5003:12:122;;;;4940:5;-1:-1:-1;;;4968:15:122;;;;4061:1;4052:11;4019:1006;;;-1:-1:-1;5042:6:122;;3416:1638;-1:-1:-1;;;;;;;;;3416:1638:122:o;5307:803::-;5469:4;5498:2;5538;5527:9;5523:18;5568:2;5557:9;5550:21;5591:6;5626;5620:13;5657:6;5649;5642:22;5695:2;5684:9;5680:18;5673:25;;5757:2;5747:6;5744:1;5740:14;5729:9;5725:30;5721:39;5707:53;;5795:2;5787:6;5783:15;5816:1;5826:255;5840:6;5837:1;5834:13;5826:255;;;5933:2;5929:7;5917:9;5909:6;5905:22;5901:36;5896:3;5889:49;5961:40;5994:6;5985;5979:13;5961:40;:::i;:::-;5951:50;-1:-1:-1;6059:12:122;;;;6024:15;;;;5862:1;5855:9;5826:255;;;-1:-1:-1;6098:6:122;;5307:803;-1:-1:-1;;;;;;;5307:803:122:o;6554:437::-;6633:1;6629:12;;;;6676;;;6697:61;;6751:4;6743:6;6739:17;6729:27;;6697:61;6804:2;6796:6;6793:14;6773:18;6770:38;6767:218;;-1:-1:-1;;;6838:1:122;6831:88;6942:4;6939:1;6932:15;6970:4;6967:1;6960:15;6767:218;;6554:437;;;:::o;7185:184::-;-1:-1:-1;;;7234:1:122;7227:88;7334:4;7331:1;7324:15;7358:4;7355:1;7348:15;7676:184;7746:6;7799:2;7787:9;7778:7;7774:23;7770:32;7767:52;;;7815:1;7812;7805:12;7767:52;-1:-1:-1;7838:16:122;;7676:184;-1:-1:-1;7676:184:122:o;7865:289::-;7996:3;8034:6;8028:13;8050:66;8109:6;8104:3;8097:4;8089:6;8085:17;8050:66;:::i;:::-;8132:16;;;;;7865:289;-1:-1:-1;;7865:289:122:o;8341:313::-;8411:6;8464:2;8452:9;8443:7;8439:23;8435:32;8432:52;;;8480:1;8477;8470:12;8432:52;8512:9;8506:16;-1:-1:-1;;;;;8555:5:122;8551:54;8544:5;8541:65;8531:93;;8620:1;8617;8610:12;8531:93;8643:5;8341:313;-1:-1:-1;;;8341:313:122:o;8659:340::-;-1:-1:-1;;;;;8840:6:122;8836:55;8825:9;8818:74;8928:2;8923;8912:9;8908:18;8901:30;8799:4;8948:45;8989:2;8978:9;8974:18;8966:6;8948:45;:::i;:::-;8940:53;8659:340;-1:-1:-1;;;;8659:340:122:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_anchor()":"176effb3","poolProfile_id()":"fd325c60","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_anchor()":"c5d7d73b","profile1_id()":"39f56f7f","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_anchor()":"3554642a","profile2_id()":"18540361","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetupFull\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup a Registry contract with two identities for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetupFull\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709\",\"dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetupFull"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xfeefb24d068524440e1ba885efdf105d91f83504af3c2d745ffacc4595396831","urls":["bzz-raw://3df5f6a75f86411cb20df54362ed4ec9b4c270720be20da7095f169932fa2709","dweb:/ipfs/QmTThfuAwFYAvtHgZbmp6ZAbN2MVGSabAnhAbsB6JQxJCF"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149","urls":["bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c","dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a","urls":["bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7","dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"id":47} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolProfile_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile1_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile2_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b506118128061003d6000396000f3fe608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220fd5e37107c9def1683e5026978f0bbf09feec6f0e6adcb3f3c224149b73ed48b64736f6c63430008130033","sourceMap":"833:2031:17:-:0;;;3126:44:24;;;3166:4;-1:-1:-1;;3126:44:24;;;;;;;;1016:26:34;;;;;;;;;;;833:2031:17;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220fd5e37107c9def1683e5026978f0bbf09feec6f0e6adcb3f3c224149b73ed48b64736f6c63430008130033","sourceMap":"833:2031:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:144;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;2159:111:17;2244:19;;-1:-1:-1;;;;;2244:19:17;2159:111;;2572:97;2650:12;;2572:97;;;391:25:144;;;379:2;364:18;2572:97:17;245:177:144;3126:109:15;;;:::i;2554:113::-;;;:::i;2452:134:27:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;2757:105:17:-;2839:16;;-1:-1:-1;;;;;2839:16:17;2757:105;;2276:97;2354:12;;2276:97;;3221:133:27;;;:::i;2922:141::-;;;:::i;1331:118:15:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:27:-;;;:::i;:::-;;;;;;;:::i;1876:107:15:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:17:-;678:10;;;;;-1:-1:-1;;;;;678:10:17;610:85;;2673:113:15;;;:::i;439:101::-;;;:::i;2592:140:27:-;;;:::i;:::-;;;;;;;:::i;1537:101:15:-;;;:::i;3485:113::-;;;:::i;3069:146:27:-;;;:::i;3604:241:15:-;;;:::i;3938:101::-;;;:::i;2157:141:27:-;;;:::i;1243:204:23:-;;;:::i;:::-;;;6280:14:144;;6273:22;6255:41;;6243:2;6228:18;1243:204:23;6115:187:144;2461:105:17;2543:16;;-1:-1:-1;;;;;2543:16:17;2461:105;;1644:113:15;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:27:-;;;:::i;3241:119:15:-;;;:::i;1016:26:34:-;;;;;;;;;2050:103:17;2131:15;;2050:103;;1763:107:15;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:27:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:27;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:27;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:27;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:27:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:15;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:27:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:15;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:27:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:15;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:27:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:23;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:23;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7548:74:144;;;1398:17:23;7638:18:144;;;7631:34;1428:1:23;;1377:7;;7521:18:144;;1377:39:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:15:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:27:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:27;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:25;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:25;20439:125;-1:-1:-1;;20439:125:25:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:25;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:144;;;20293:33:25;-1:-1:-1;20344:7:25;;;;364:18:144;;20344:19:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:25;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;427:681:144:-;598:2;650:21;;;720:13;;623:18;;;742:22;;;569:4;;598:2;821:15;;;;795:2;780:18;;;569:4;864:218;878:6;875:1;872:13;864:218;;;943:13;;-1:-1:-1;;;;;939:62:144;927:75;;1057:15;;;;1022:12;;;;900:1;893:9;864:218;;;-1:-1:-1;1099:3:144;;427:681;-1:-1:-1;;;;;;427:681:144:o;1113:250::-;1198:1;1208:113;1222:6;1219:1;1216:13;1208:113;;;1298:11;;;1292:18;1279:11;;;1272:39;1244:2;1237:10;1208:113;;;-1:-1:-1;;1355:1:144;1337:16;;1330:27;1113:250::o;1368:271::-;1410:3;1448:5;1442:12;1475:6;1470:3;1463:19;1491:76;1560:6;1553:4;1548:3;1544:14;1537:4;1530:5;1526:16;1491:76;:::i;:::-;1621:2;1600:15;-1:-1:-1;;1596:29:144;1587:39;;;;1628:4;1583:50;;1368:271;-1:-1:-1;;1368:271:144:o;1644:1767::-;1879:2;1931:21;;;2001:13;;1904:18;;;2023:22;;;1850:4;;1879:2;2064;;2082:18;;;;2119:1;2162:15;;;2147:31;;2143:40;;2206:15;;;1850:4;;2270:1112;2286:6;2281:3;2278:15;2270:1112;;;-1:-1:-1;;2355:22:144;;;2351:36;2339:49;;2411:13;;2498:9;;-1:-1:-1;;;;;2494:58:144;2479:74;;2592:11;;2586:18;2624:15;;;2617:27;;;2705:19;;2451:15;;;2737:24;;;2918:21;;;;2784:2;2866:17;;;2854:30;;2850:39;;;2808:15;;;;2963:1;2977:296;2993:8;2988:3;2985:17;2977:296;;;3099:2;3095:7;3086:6;3078;3074:19;3070:33;3063:5;3056:48;3131:42;3166:6;3155:8;3149:15;3131:42;:::i;:::-;3202:17;;;;3121:52;-1:-1:-1;3245:14:144;;;;3021:1;3012:11;2977:296;;;-1:-1:-1;;;3360:12:144;;;;3296:6;-1:-1:-1;;3325:15:144;;;;2312:1;2303:11;2270:1112;;;-1:-1:-1;3399:6:144;;1644:1767;-1:-1:-1;;;;;;;;;;1644:1767:144:o;3416:1638::-;3620:4;3649:2;3689;3678:9;3674:18;3719:2;3708:9;3701:21;3742:6;3777;3771:13;3808:6;3800;3793:22;3834:2;3824:12;;3867:2;3856:9;3852:18;3845:25;;3929:2;3919:6;3916:1;3912:14;3901:9;3897:30;3893:39;3967:2;3959:6;3955:15;3988:1;4009;4019:1006;4035:6;4030:3;4027:15;4019:1006;;;4104:22;;;-1:-1:-1;;4100:36:144;4088:49;;4160:13;;4247:9;;-1:-1:-1;;;;;4243:58:144;4228:74;;4341:11;;4335:18;4373:15;;;4366:27;;;4454:19;;4200:15;;;4486:24;;;4576:21;;;;4621:1;;4544:2;4532:15;;;4635:282;4651:8;4646:3;4643:17;4635:282;;;4732:15;;4749:66;4728:88;4714:103;;4886:17;;;;4679:1;4670:11;;;;;4843:14;;;;4635:282;;;-1:-1:-1;5003:12:144;;;;4940:5;-1:-1:-1;;;4968:15:144;;;;4061:1;4052:11;4019:1006;;;-1:-1:-1;5042:6:144;;3416:1638;-1:-1:-1;;;;;;;;;3416:1638:144:o;5307:803::-;5469:4;5498:2;5538;5527:9;5523:18;5568:2;5557:9;5550:21;5591:6;5626;5620:13;5657:6;5649;5642:22;5695:2;5684:9;5680:18;5673:25;;5757:2;5747:6;5744:1;5740:14;5729:9;5725:30;5721:39;5707:53;;5795:2;5787:6;5783:15;5816:1;5826:255;5840:6;5837:1;5834:13;5826:255;;;5933:2;5929:7;5917:9;5909:6;5905:22;5901:36;5896:3;5889:49;5961:40;5994:6;5985;5979:13;5961:40;:::i;:::-;5951:50;-1:-1:-1;6059:12:144;;;;6024:15;;;;5862:1;5855:9;5826:255;;;-1:-1:-1;6098:6:144;;5307:803;-1:-1:-1;;;;;;;5307:803:144:o;6554:437::-;6633:1;6629:12;;;;6676;;;6697:61;;6751:4;6743:6;6739:17;6729:27;;6697:61;6804:2;6796:6;6793:14;6773:18;6770:38;6767:218;;-1:-1:-1;;;6838:1:144;6831:88;6942:4;6939:1;6932:15;6970:4;6967:1;6960:15;6767:218;;6554:437;;;:::o;7185:184::-;-1:-1:-1;;;7234:1:144;7227:88;7334:4;7331:1;7324:15;7358:4;7355:1;7348:15;7676:184;7746:6;7799:2;7787:9;7778:7;7774:23;7770:32;7767:52;;;7815:1;7812;7805:12;7767:52;-1:-1:-1;7838:16:144;;7676:184;-1:-1:-1;7676:184:144:o;7865:289::-;7996:3;8034:6;8028:13;8050:66;8109:6;8104:3;8097:4;8089:6;8085:17;8050:66;:::i;:::-;8132:16;;;;;7865:289;-1:-1:-1;;7865:289:144:o;8341:313::-;8411:6;8464:2;8452:9;8443:7;8439:23;8435:32;8432:52;;;8480:1;8477;8470:12;8432:52;8512:9;8506:16;-1:-1:-1;;;;;8555:5:144;8551:54;8544:5;8541:65;8531:93;;8620:1;8617;8610:12;8531:93;8643:5;8341:313;-1:-1:-1;;;8341:313:144:o;8659:340::-;-1:-1:-1;;;;;8840:6:144;8836:55;8825:9;8818:74;8928:2;8923;8912:9;8908:18;8901:30;8799:4;8948:45;8989:2;8978:9;8974:18;8966:6;8948:45;:::i;:::-;8940:53;8659:340;-1:-1:-1;;;;8659:340:144:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_anchor()":"176effb3","poolProfile_id()":"fd325c60","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_anchor()":"c5d7d73b","profile1_id()":"39f56f7f","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_anchor()":"3554642a","profile2_id()":"18540361","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetupFull\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup a Registry contract with two identities for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetupFull\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetupFull"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":6047,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13452_storage"},{"astId":6243,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8744,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8765,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8760_storage)"},{"astId":8769,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8773,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8776,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9534,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11571,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13452_storage"},{"astId":12439,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12442,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12445,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12448,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12451,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12454,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12458,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage"},{"astId":12462,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage"},{"astId":12466,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12436_storage)dyn_storage"},{"astId":18051,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":5104,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_registry_","offset":1,"slot":"30","type":"t_contract(Registry)2295"},{"astId":5137,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_poolProfileId_","offset":0,"slot":"31","type":"t_bytes32"},{"astId":5139,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_poolProfileAnchor_","offset":0,"slot":"32","type":"t_address"},{"astId":5141,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile1Id_","offset":0,"slot":"33","type":"t_bytes32"},{"astId":5143,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile1Anchor_","offset":0,"slot":"34","type":"t_address"},{"astId":5145,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile2Id_","offset":0,"slot":"35","type":"t_bytes32"},{"astId":5147,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile2Anchor_","offset":0,"slot":"36","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12436_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12436_storage"},"t_array(t_struct(FuzzSelector)12430_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12430_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(Registry)2295":{"encoding":"inplace","label":"contract Registry","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13427_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13427_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13427_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8760_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8760_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8760_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8753,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8755,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8757,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8759,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13427_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13420,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13422,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13424,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13426,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12436_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12432,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12435,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12430_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12426,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12429,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13452_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13436,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13427_storage)))"},{"astId":13439,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13441,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13443,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13445,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13447,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13449,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13451,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol","id":5297,"exportedSymbols":{"Accounts":[5026],"Metadata":[3098],"Registry":[2295],"RegistrySetup":[5132],"RegistrySetupFull":[5296],"StdAssertions":[8720],"StdChains":[9502],"StdCheats":[12355],"StdInvariant":[12680],"StdStorage":[13452],"StdStyle":[16622],"StdUtils":[18000],"Test":[18052],"TestBase":[6051],"Vm":[21702],"console":[29766],"console2":[37891],"safeconsole":[52616],"stdError":[12421],"stdJson":[13272],"stdMath":[13414],"stdStorage":[15411],"stdToml":[17214]},"nodeType":"SourceUnit","src":"42:2823:17","nodes":[{"id":5089,"nodeType":"PragmaDirective","src":"42:24:17","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5090,"nodeType":"ImportDirective","src":"68:28:17","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":18053,"symbolAliases":[],"unitAlias":""},{"id":5092,"nodeType":"ImportDirective","src":"98:62:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","file":"../../../contracts/core/Registry.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":2296,"symbolAliases":[{"foreign":{"id":5091,"name":"Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"106:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"161:72:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../../../contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":5093,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"169:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5096,"nodeType":"ImportDirective","src":"234:40:17","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"./Accounts.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":5095,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"242:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ContractDefinition","src":"393:304:17","nodes":[{"id":5104,"nodeType":"VariableDeclaration","src":"440:28:17","nodes":[],"constant":false,"mutability":"mutable","name":"_registry_","nameLocation":"458:10:17","scope":5132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5103,"nodeType":"UserDefinedTypeName","pathNode":{"id":5102,"name":"Registry","nameLocations":["440:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"440:8:17"},"referencedDeclaration":2295,"src":"440:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"},{"id":5122,"nodeType":"FunctionDefinition","src":"475:129:17","nodes":[],"body":{"id":5121,"nodeType":"Block","src":"511:93:17","nodes":[],"statements":[{"expression":{"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5107,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"521:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"534:12:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Registry_$2295_$","typeString":"function () returns (contract Registry)"},"typeName":{"id":5109,"nodeType":"UserDefinedTypeName","pathNode":{"id":5108,"name":"Registry","nameLocations":["538:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"538:8:17"},"referencedDeclaration":2295,"src":"538:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"src":"521:27:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5113,"nodeType":"ExpressionStatement","src":"521:27:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5117,"name":"registry_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"580:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5114,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"558:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1578,"src":"558:21:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5120,"nodeType":"ExpressionStatement","src":"558:39:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetup","nameLocation":"484:15:17","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[],"src":"499:2:17"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[],"src":"511:0:17"},"scope":5132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5131,"nodeType":"FunctionDefinition","src":"610:85:17","nodes":[],"body":{"id":5130,"nodeType":"Block","src":"661:34:17","nodes":[],"statements":[{"expression":{"id":5128,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"678:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"functionReturnParameters":5127,"id":5129,"nodeType":"Return","src":"671:17:17"}]},"functionSelector":"7b103999","implemented":true,"kind":"function","modifiers":[],"name":"registry","nameLocation":"619:8:17","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[],"src":"627:2:17"},"returnParameters":{"id":5127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5131,"src":"651:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5125,"nodeType":"UserDefinedTypeName","pathNode":{"id":5124,"name":"Registry","nameLocations":["651:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"651:8:17"},"referencedDeclaration":2295,"src":"651:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"}],"src":"650:10:17"},"scope":5132,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5098,"name":"Test","nameLocations":["419:4:17"],"nodeType":"IdentifierPath","referencedDeclaration":18052,"src":"419:4:17"},"id":5099,"nodeType":"InheritanceSpecifier","src":"419:4:17"},{"baseName":{"id":5100,"name":"Accounts","nameLocations":["425:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"425:8:17"},"id":5101,"nodeType":"InheritanceSpecifier","src":"425:8:17"}],"canonicalName":"RegistrySetup","contractDependencies":[],"contractKind":"contract","documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"276:117:17","text":"@title RegistrySetup\n @notice This contract is used to setup an empty Registry contract for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5132,5026,18052,18000,12680,12355,11562,9502,8720,6051,6048],"name":"RegistrySetup","nameLocation":"402:13:17","scope":5297,"usedErrors":[]},{"id":5296,"nodeType":"ContractDefinition","src":"833:2031:17","nodes":[{"id":5137,"nodeType":"VariableDeclaration","src":"883:32:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId_","nameLocation":"900:15:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5139,"nodeType":"VariableDeclaration","src":"921:36:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileAnchor_","nameLocation":"938:19:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5138,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5141,"nodeType":"VariableDeclaration","src":"964:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Id_","nameLocation":"981:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5143,"nodeType":"VariableDeclaration","src":"999:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Anchor_","nameLocation":"1016:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5142,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5145,"nodeType":"VariableDeclaration","src":"1039:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Id_","nameLocation":"1056:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5147,"nodeType":"VariableDeclaration","src":"1074:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Anchor_","nameLocation":"1091:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5146,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5247,"nodeType":"FunctionDefinition","src":"1114:930:17","nodes":[],"body":{"id":5246,"nodeType":"Block","src":"1154:890:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5150,"name":"__RegistrySetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"1164:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"ExpressionStatement","src":"1164:17:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5156,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1201:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1192:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1195:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21355,"src":"1192:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5159,"nodeType":"ExpressionStatement","src":"1192:22:17"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5160,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1224:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"506f6f6c2050726f66696c652031","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":5165,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1301:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1311:8:17","1324:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1301:48:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5169,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1351:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5171,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"1365:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5161,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1242:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1242:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:148:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1224:166:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"1224:166:17"},{"expression":{"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5176,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"1400:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5179,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1448:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5177,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1422:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1422:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1465:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1422:49:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1400:71:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5183,"nodeType":"ExpressionStatement","src":"1400:71:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5187,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1491:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1482:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1485:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21355,"src":"1482:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5190,"nodeType":"ExpressionStatement","src":"1482:26:17"},{"expression":{"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5191,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1518:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652031","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1574:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},"value":"Profile 1"},{"arguments":[{"hexValue":"31","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6531","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""},"value":"Profile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""}],"id":5196,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1587:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1597:8:17","1610:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1587:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5200,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1633:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5202,"name":"profile1_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"1651:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5192,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1533:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1533:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1533:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1518:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5206,"nodeType":"ExpressionStatement","src":"1518:161:17"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5207,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"1689:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5210,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1734:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5208,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1708:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1708:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1708:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1689:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5214,"nodeType":"ExpressionStatement","src":"1689:65:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5218,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1774:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6044,"src":"1765:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21702","typeString":"contract Vm"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21355,"src":"1765:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"1765:26:17"},{"expression":{"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"1801:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652032","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},"value":"Profile 2"},{"arguments":[{"hexValue":"31","id":5228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6532","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""},"value":"Profile2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""}],"id":5227,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1870:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1880:8:17","1893:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1870:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5231,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1916:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5233,"name":"profile2_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"1934:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5223,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1816:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1816:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1801:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5237,"nodeType":"ExpressionStatement","src":"1801:161:17"},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5238,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"1972:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5241,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2017:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5239,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1991:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2002:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1991:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2031:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1991:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1972:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"1972:65:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetupFull","nameLocation":"1123:19:17","parameters":{"id":5148,"nodeType":"ParameterList","parameters":[],"src":"1142:2:17"},"returnParameters":{"id":5149,"nodeType":"ParameterList","parameters":[],"src":"1154:0:17"},"scope":5296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5255,"nodeType":"FunctionDefinition","src":"2050:103:17","nodes":[],"body":{"id":5254,"nodeType":"Block","src":"2114:39:17","nodes":[],"statements":[{"expression":{"id":5252,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"2131:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5251,"id":5253,"nodeType":"Return","src":"2124:22:17"}]},"functionSelector":"fd325c60","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id","nameLocation":"2059:14:17","parameters":{"id":5248,"nodeType":"ParameterList","parameters":[],"src":"2073:2:17"},"returnParameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5255,"src":"2105:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2105:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2104:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5263,"nodeType":"FunctionDefinition","src":"2159:111:17","nodes":[],"body":{"id":5262,"nodeType":"Block","src":"2227:43:17","nodes":[],"statements":[{"expression":{"id":5260,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2244:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5259,"id":5261,"nodeType":"Return","src":"2237:26:17"}]},"functionSelector":"176effb3","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_anchor","nameLocation":"2168:18:17","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[],"src":"2186:2:17"},"returnParameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5263,"src":"2218:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5271,"nodeType":"FunctionDefinition","src":"2276:97:17","nodes":[],"body":{"id":5270,"nodeType":"Block","src":"2337:36:17","nodes":[],"statements":[{"expression":{"id":5268,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2354:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5267,"id":5269,"nodeType":"Return","src":"2347:19:17"}]},"functionSelector":"39f56f7f","implemented":true,"kind":"function","modifiers":[],"name":"profile1_id","nameLocation":"2285:11:17","parameters":{"id":5264,"nodeType":"ParameterList","parameters":[],"src":"2296:2:17"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5271,"src":"2328:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2328:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2327:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5279,"nodeType":"FunctionDefinition","src":"2461:105:17","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"2526:40:17","nodes":[],"statements":[{"expression":{"id":5276,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2543:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5275,"id":5277,"nodeType":"Return","src":"2536:23:17"}]},"functionSelector":"c5d7d73b","implemented":true,"kind":"function","modifiers":[],"name":"profile1_anchor","nameLocation":"2470:15:17","parameters":{"id":5272,"nodeType":"ParameterList","parameters":[],"src":"2485:2:17"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5279,"src":"2517:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2516:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5287,"nodeType":"FunctionDefinition","src":"2572:97:17","nodes":[],"body":{"id":5286,"nodeType":"Block","src":"2633:36:17","nodes":[],"statements":[{"expression":{"id":5284,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2650:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5283,"id":5285,"nodeType":"Return","src":"2643:19:17"}]},"functionSelector":"18540361","implemented":true,"kind":"function","modifiers":[],"name":"profile2_id","nameLocation":"2581:11:17","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"2592:2:17"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5287,"src":"2624:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"2757:105:17","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"2822:40:17","nodes":[],"statements":[{"expression":{"id":5292,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2839:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5291,"id":5293,"nodeType":"Return","src":"2832:23:17"}]},"functionSelector":"3554642a","implemented":true,"kind":"function","modifiers":[],"name":"profile2_anchor","nameLocation":"2766:15:17","parameters":{"id":5288,"nodeType":"ParameterList","parameters":[],"src":"2781:2:17"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"2813:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"2813:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2812:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5134,"name":"RegistrySetup","nameLocations":["863:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":5132,"src":"863:13:17"},"id":5135,"nodeType":"InheritanceSpecifier","src":"863:13:17"}],"canonicalName":"RegistrySetupFull","contractDependencies":[],"contractKind":"contract","documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"699:134:17","text":"@title RegistrySetupFull\n @notice This contract is used to setup a Registry contract with two identities for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5296,5132,5026,18052,18000,12680,12355,11562,9502,8720,6051,6048],"name":"RegistrySetupFull","nameLocation":"842:17:17","scope":5297,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":17} \ No newline at end of file diff --git a/pkg/contracts/out/SafeERC20.sol/SafeERC20.json b/pkg/contracts/out/SafeERC20.sol/SafeERC20.json index dacac1217..8d40ad041 100644 --- a/pkg/contracts/out/SafeERC20.sol/SafeERC20.json +++ b/pkg/contracts/out/SafeERC20.sol/SafeERC20.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b108363b559c3c5bc3db8b6462de977b0359deeb5d46e46cbfac7531f62a333d64736f6c63430008130033","sourceMap":"701:6234:33:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:33;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b108363b559c3c5bc3db8b6462de977b0359deeb5d46e46cbfac7531f62a333d64736f6c63430008130033","sourceMap":"701:6234:33:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/allo-v2/lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"}},"version":1},"id":33} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220451054a5530f63c30949f5faaf951ae6987e41d70178f4539e933ffa2c290dbb64736f6c63430008130033","sourceMap":"701:6234:77:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:77;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220451054a5530f63c30949f5faaf951ae6987e41d70178f4539e933ffa2c290dbb64736f6c63430008130033","sourceMap":"701:6234:77:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","id":57555,"exportedSymbols":{"Address":[57929],"IERC20":[57117],"IERC20Permit":[57178],"SafeERC20":[57554]},"nodeType":"SourceUnit","src":"115:6821:77","nodes":[{"id":57180,"nodeType":"PragmaDirective","src":"115:23:77","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":57181,"nodeType":"ImportDirective","src":"140:23:77","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":57555,"sourceUnit":57118,"symbolAliases":[],"unitAlias":""},{"id":57182,"nodeType":"ImportDirective","src":"164:40:77","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","nameLocation":"-1:-1:-1","scope":57555,"sourceUnit":57179,"symbolAliases":[],"unitAlias":""},{"id":57183,"nodeType":"ImportDirective","src":"205:36:77","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":57555,"sourceUnit":57930,"symbolAliases":[],"unitAlias":""},{"id":57554,"nodeType":"ContractDefinition","src":"701:6234:77","nodes":[{"id":57187,"nodeType":"UsingForDirective","src":"725:26:77","nodes":[],"global":false,"libraryName":{"id":57185,"name":"Address","nameLocations":["731:7:77"],"nodeType":"IdentifierPath","referencedDeclaration":57929,"src":"731:7:77"},"typeName":{"id":57186,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":57211,"nodeType":"FunctionDefinition","src":"941:175:77","nodes":[],"body":{"id":57210,"nodeType":"Block","src":"1013:103:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":57199,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57191,"src":"1043:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57202,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57191,"src":"1073:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:77","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":57084,"src":"1073:14:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:77","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57205,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57193,"src":"1098:2:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57206,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57195,"src":"1102:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57198,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"1023:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57209,"nodeType":"ExpressionStatement","src":"1023:86:77"}]},"documentation":{"id":57188,"nodeType":"StructuredDocumentation","src":"757:179:77","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:77","parameters":{"id":57196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57191,"mutability":"mutable","name":"token","nameLocation":"970:5:77","nodeType":"VariableDeclaration","scope":57211,"src":"963:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57190,"nodeType":"UserDefinedTypeName","pathNode":{"id":57189,"name":"IERC20","nameLocations":["963:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"963:6:77"},"referencedDeclaration":57117,"src":"963:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57193,"mutability":"mutable","name":"to","nameLocation":"985:2:77","nodeType":"VariableDeclaration","scope":57211,"src":"977:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57192,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57195,"mutability":"mutable","name":"value","nameLocation":"997:5:77","nodeType":"VariableDeclaration","scope":57211,"src":"989:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57194,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:77"},"returnParameters":{"id":57197,"nodeType":"ParameterList","parameters":[],"src":"1013:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57238,"nodeType":"FunctionDefinition","src":"1355:203:77","nodes":[],"body":{"id":57237,"nodeType":"Block","src":"1445:113:77","nodes":[],"statements":[{"expression":{"arguments":[{"id":57225,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57215,"src":"1475:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57228,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57215,"src":"1505:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:77","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":57116,"src":"1505:18:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":57230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:77","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57231,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57217,"src":"1534:4:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57232,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57219,"src":"1540:2:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57233,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57221,"src":"1544:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57226,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57227,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57224,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"1455:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57236,"nodeType":"ExpressionStatement","src":"1455:96:77"}]},"documentation":{"id":57212,"nodeType":"StructuredDocumentation","src":"1122:228:77","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:77","parameters":{"id":57222,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57215,"mutability":"mutable","name":"token","nameLocation":"1388:5:77","nodeType":"VariableDeclaration","scope":57238,"src":"1381:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57214,"nodeType":"UserDefinedTypeName","pathNode":{"id":57213,"name":"IERC20","nameLocations":["1381:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"1381:6:77"},"referencedDeclaration":57117,"src":"1381:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57217,"mutability":"mutable","name":"from","nameLocation":"1403:4:77","nodeType":"VariableDeclaration","scope":57238,"src":"1395:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57216,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57219,"mutability":"mutable","name":"to","nameLocation":"1417:2:77","nodeType":"VariableDeclaration","scope":57238,"src":"1409:10:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57218,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57221,"mutability":"mutable","name":"value","nameLocation":"1429:5:77","nodeType":"VariableDeclaration","scope":57238,"src":"1421:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:77"},"returnParameters":{"id":57223,"nodeType":"ParameterList","parameters":[],"src":"1445:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57282,"nodeType":"FunctionDefinition","src":"1818:573:77","nodes":[],"body":{"id":57281,"nodeType":"Block","src":"1894:497:77","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57250,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57246,"src":"2143:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57251,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57253,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":57258,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57554","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57554","typeString":"library SafeERC20"}],"id":57257,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57256,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:77","typeDescriptions":{}}},"id":57259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57260,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57244,"src":"2190:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57254,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57242,"src":"2159:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:77","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":57094,"src":"2159:15:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57262,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57264,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":57266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":57249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2121:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57267,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57268,"nodeType":"ExpressionStatement","src":"2121:163:77"},{"expression":{"arguments":[{"id":57270,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57242,"src":"2314:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57273,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57242,"src":"2344:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:77","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":57104,"src":"2344:13:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:77","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57276,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57244,"src":"2368:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57277,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57246,"src":"2377:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57271,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57269,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"2294:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57280,"nodeType":"ExpressionStatement","src":"2294:90:77"}]},"documentation":{"id":57239,"nodeType":"StructuredDocumentation","src":"1564:249:77","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:77","parameters":{"id":57247,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57242,"mutability":"mutable","name":"token","nameLocation":"1846:5:77","nodeType":"VariableDeclaration","scope":57282,"src":"1839:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57241,"nodeType":"UserDefinedTypeName","pathNode":{"id":57240,"name":"IERC20","nameLocations":["1839:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"1839:6:77"},"referencedDeclaration":57117,"src":"1839:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57244,"mutability":"mutable","name":"spender","nameLocation":"1861:7:77","nodeType":"VariableDeclaration","scope":57282,"src":"1853:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57243,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57246,"mutability":"mutable","name":"value","nameLocation":"1878:5:77","nodeType":"VariableDeclaration","scope":57282,"src":"1870:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57245,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:77"},"returnParameters":{"id":57248,"nodeType":"ParameterList","parameters":[],"src":"1894:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57319,"nodeType":"FunctionDefinition","src":"2582:280:77","nodes":[],"body":{"id":57318,"nodeType":"Block","src":"2668:194:77","nodes":[],"statements":[{"assignments":[57294],"declarations":[{"constant":false,"id":57294,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:77","nodeType":"VariableDeclaration","scope":57318,"src":"2678:20:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57293,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57303,"initialValue":{"arguments":[{"arguments":[{"id":57299,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57554","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57554","typeString":"library SafeERC20"}],"id":57298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57297,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:77","typeDescriptions":{}}},"id":57300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57301,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"2732:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57295,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57286,"src":"2701:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:77","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":57094,"src":"2701:15:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:77"},{"expression":{"arguments":[{"id":57305,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57286,"src":"2770:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57308,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57286,"src":"2800:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:77","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":57104,"src":"2800:13:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:77","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57311,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"2824:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57312,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57294,"src":"2833:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":57313,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57290,"src":"2848:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57306,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57307,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57304,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"2750:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57316,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57317,"nodeType":"ExpressionStatement","src":"2750:105:77"}]},"documentation":{"id":57283,"nodeType":"StructuredDocumentation","src":"2397:180:77","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:77","parameters":{"id":57291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57286,"mutability":"mutable","name":"token","nameLocation":"2620:5:77","nodeType":"VariableDeclaration","scope":57319,"src":"2613:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57285,"nodeType":"UserDefinedTypeName","pathNode":{"id":57284,"name":"IERC20","nameLocations":["2613:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"2613:6:77"},"referencedDeclaration":57117,"src":"2613:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57288,"mutability":"mutable","name":"spender","nameLocation":"2635:7:77","nodeType":"VariableDeclaration","scope":57319,"src":"2627:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57287,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57290,"mutability":"mutable","name":"value","nameLocation":"2652:5:77","nodeType":"VariableDeclaration","scope":57319,"src":"2644:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57289,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:77"},"returnParameters":{"id":57292,"nodeType":"ParameterList","parameters":[],"src":"2668:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57364,"nodeType":"FunctionDefinition","src":"3053:407:77","nodes":[],"body":{"id":57363,"nodeType":"Block","src":"3139:321:77","nodes":[],"statements":[{"id":57362,"nodeType":"UncheckedBlock","src":"3149:305:77","statements":[{"assignments":[57331],"declarations":[{"constant":false,"id":57331,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:77","nodeType":"VariableDeclaration","scope":57362,"src":"3173:20:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57330,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57340,"initialValue":{"arguments":[{"arguments":[{"id":57336,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:77","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57554","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57554","typeString":"library SafeERC20"}],"id":57335,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57334,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:77","typeDescriptions":{}}},"id":57337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57338,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57325,"src":"3227:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57332,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57323,"src":"3196:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:77","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":57094,"src":"3196:15:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57342,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57331,"src":"3257:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":57343,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3273:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":57345,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":57341,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3249:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57347,"nodeType":"ExpressionStatement","src":"3249:75:77"},{"expression":{"arguments":[{"id":57349,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57323,"src":"3358:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57352,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57323,"src":"3388:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:77","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":57104,"src":"3388:13:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:77","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57355,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57325,"src":"3412:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57356,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57331,"src":"3421:12:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":57357,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57327,"src":"3436:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57350,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57351,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57348,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"3338:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57361,"nodeType":"ExpressionStatement","src":"3338:105:77"}]}]},"documentation":{"id":57320,"nodeType":"StructuredDocumentation","src":"2868:180:77","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:77","parameters":{"id":57328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57323,"mutability":"mutable","name":"token","nameLocation":"3091:5:77","nodeType":"VariableDeclaration","scope":57364,"src":"3084:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57322,"nodeType":"UserDefinedTypeName","pathNode":{"id":57321,"name":"IERC20","nameLocations":["3084:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"3084:6:77"},"referencedDeclaration":57117,"src":"3084:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57325,"mutability":"mutable","name":"spender","nameLocation":"3106:7:77","nodeType":"VariableDeclaration","scope":57364,"src":"3098:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57324,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57327,"mutability":"mutable","name":"value","nameLocation":"3123:5:77","nodeType":"VariableDeclaration","scope":57364,"src":"3115:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:77"},"returnParameters":{"id":57329,"nodeType":"ParameterList","parameters":[],"src":"3139:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57411,"nodeType":"FunctionDefinition","src":"3779:410:77","nodes":[],"body":{"id":57410,"nodeType":"Block","src":"3856:333:77","nodes":[],"statements":[{"assignments":[57376],"declarations":[{"constant":false,"id":57376,"mutability":"mutable","name":"approvalCall","nameLocation":"3879:12:77","nodeType":"VariableDeclaration","scope":57410,"src":"3866:25:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57375,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57385,"initialValue":{"arguments":[{"expression":{"expression":{"id":57379,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"3917:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:77","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":57104,"src":"3917:13:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:8:77","memberName":"selector","nodeType":"MemberAccess","src":"3917:22:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57382,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"3941:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57383,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57372,"src":"3950:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57377,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3894:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3898:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3894:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:62:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3866:90:77"},{"condition":{"id":57390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3971:45:77","subExpression":{"arguments":[{"id":57387,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"3996:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"id":57388,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57376,"src":"4003:12:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57386,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57553,"src":"3972:23:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":57389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:44:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57409,"nodeType":"IfStatement","src":"3967:216:77","trueBody":{"id":57408,"nodeType":"Block","src":"4018:165:77","statements":[{"expression":{"arguments":[{"id":57392,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"4052:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57395,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"4082:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"id":57396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4088:7:77","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":57104,"src":"4082:13:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:8:77","memberName":"selector","nodeType":"MemberAccess","src":"4082:22:77","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57398,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57370,"src":"4106:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":57399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":57393,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4059:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4063:18:77","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4059:22:77","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:58:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57391,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"4032:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:86:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57402,"nodeType":"ExpressionStatement","src":"4032:86:77"},{"expression":{"arguments":[{"id":57404,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57368,"src":"4152:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},{"id":57405,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57376,"src":"4159:12:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57403,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57505,"src":"4132:19:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$57117_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:40:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57407,"nodeType":"ExpressionStatement","src":"4132:40:77"}]}}]},"documentation":{"id":57365,"nodeType":"StructuredDocumentation","src":"3466:308:77","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3788:12:77","parameters":{"id":57373,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57368,"mutability":"mutable","name":"token","nameLocation":"3808:5:77","nodeType":"VariableDeclaration","scope":57411,"src":"3801:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57367,"nodeType":"UserDefinedTypeName","pathNode":{"id":57366,"name":"IERC20","nameLocations":["3801:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"3801:6:77"},"referencedDeclaration":57117,"src":"3801:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57370,"mutability":"mutable","name":"spender","nameLocation":"3823:7:77","nodeType":"VariableDeclaration","scope":57411,"src":"3815:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57369,"name":"address","nodeType":"ElementaryTypeName","src":"3815:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57372,"mutability":"mutable","name":"value","nameLocation":"3840:5:77","nodeType":"VariableDeclaration","scope":57411,"src":"3832:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57371,"name":"uint256","nodeType":"ElementaryTypeName","src":"3832:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3800:46:77"},"returnParameters":{"id":57374,"nodeType":"ParameterList","parameters":[],"src":"3856:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57468,"nodeType":"FunctionDefinition","src":"4341:472:77","nodes":[],"body":{"id":57467,"nodeType":"Block","src":"4556:257:77","nodes":[],"statements":[{"assignments":[57433],"declarations":[{"constant":false,"id":57433,"mutability":"mutable","name":"nonceBefore","nameLocation":"4574:11:77","nodeType":"VariableDeclaration","scope":57467,"src":"4566:19:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57432,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57438,"initialValue":{"arguments":[{"id":57436,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57417,"src":"4601:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57434,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57415,"src":"4588:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$57178","typeString":"contract IERC20Permit"}},"id":57435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4594:6:77","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":57171,"src":"4588:12:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:19:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4566:41:77"},{"expression":{"arguments":[{"id":57442,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57417,"src":"4630:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57443,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57419,"src":"4637:7:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57444,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57421,"src":"4646:5:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57445,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57423,"src":"4653:8:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57446,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57425,"src":"4663:1:77","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":57447,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57427,"src":"4666:1:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":57448,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57429,"src":"4669:1:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":57439,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57415,"src":"4617:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$57178","typeString":"contract IERC20Permit"}},"id":57441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:77","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":57163,"src":"4617:12:77","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":57449,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:54:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57450,"nodeType":"ExpressionStatement","src":"4617:54:77"},{"assignments":[57452],"declarations":[{"constant":false,"id":57452,"mutability":"mutable","name":"nonceAfter","nameLocation":"4689:10:77","nodeType":"VariableDeclaration","scope":57467,"src":"4681:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57451,"name":"uint256","nodeType":"ElementaryTypeName","src":"4681:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57457,"initialValue":{"arguments":[{"id":57455,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57417,"src":"4715:5:77","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57453,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57415,"src":"4702:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$57178","typeString":"contract IERC20Permit"}},"id":57454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:6:77","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":57171,"src":"4702:12:77","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:19:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4681:40:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57459,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57452,"src":"4739:10:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57460,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57433,"src":"4753:11:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":57461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:77","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4753:15:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4739:29:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":57464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4770:35:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":57458,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4731:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:75:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57466,"nodeType":"ExpressionStatement","src":"4731:75:77"}]},"documentation":{"id":57412,"nodeType":"StructuredDocumentation","src":"4195:141:77","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4350:10:77","parameters":{"id":57430,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57415,"mutability":"mutable","name":"token","nameLocation":"4383:5:77","nodeType":"VariableDeclaration","scope":57468,"src":"4370:18:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$57178","typeString":"contract IERC20Permit"},"typeName":{"id":57414,"nodeType":"UserDefinedTypeName","pathNode":{"id":57413,"name":"IERC20Permit","nameLocations":["4370:12:77"],"nodeType":"IdentifierPath","referencedDeclaration":57178,"src":"4370:12:77"},"referencedDeclaration":57178,"src":"4370:12:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$57178","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":57417,"mutability":"mutable","name":"owner","nameLocation":"4406:5:77","nodeType":"VariableDeclaration","scope":57468,"src":"4398:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57416,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57419,"mutability":"mutable","name":"spender","nameLocation":"4429:7:77","nodeType":"VariableDeclaration","scope":57468,"src":"4421:15:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57418,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:77","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57421,"mutability":"mutable","name":"value","nameLocation":"4454:5:77","nodeType":"VariableDeclaration","scope":57468,"src":"4446:13:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57420,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57423,"mutability":"mutable","name":"deadline","nameLocation":"4477:8:77","nodeType":"VariableDeclaration","scope":57468,"src":"4469:16:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57422,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57425,"mutability":"mutable","name":"v","nameLocation":"4501:1:77","nodeType":"VariableDeclaration","scope":57468,"src":"4495:7:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57424,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:77","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57427,"mutability":"mutable","name":"r","nameLocation":"4520:1:77","nodeType":"VariableDeclaration","scope":57468,"src":"4512:9:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57426,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4512:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":57429,"mutability":"mutable","name":"s","nameLocation":"4539:1:77","nodeType":"VariableDeclaration","scope":57468,"src":"4531:9:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57428,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4531:7:77","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4360:186:77"},"returnParameters":{"id":57431,"nodeType":"ParameterList","parameters":[],"src":"4556:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57505,"nodeType":"FunctionDefinition","src":"5196:642:77","nodes":[],"body":{"id":57504,"nodeType":"Block","src":"5266:572:77","nodes":[],"statements":[{"assignments":[57478],"declarations":[{"constant":false,"id":57478,"mutability":"mutable","name":"returndata","nameLocation":"5628:10:77","nodeType":"VariableDeclaration","scope":57504,"src":"5615:23:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57477,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57487,"initialValue":{"arguments":[{"id":57484,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57474,"src":"5669:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":57485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:34:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":57481,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57472,"src":"5649:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":57480,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5641:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57479,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:77","typeDescriptions":{}}},"id":57482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:14:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:77","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":57689,"src":"5641:27:77","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":57486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:69:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:95:77"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57489,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57478,"src":"5728:10:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5739:6:77","memberName":"length","nodeType":"MemberAccess","src":"5728:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57491,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5749:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5728:22:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57495,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57478,"src":"5765:10:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5778:4:77","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":57496,"name":"bool","nodeType":"ElementaryTypeName","src":"5778:4:77","typeDescriptions":{}}}],"id":57498,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5777:6:77","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":57493,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5754:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57494,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5758:6:77","memberName":"decode","nodeType":"MemberAccess","src":"5754:10:77","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5728:56:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":57501,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:44:77","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":57488,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5720:7:77","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:111:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57503,"nodeType":"ExpressionStatement","src":"5720:111:77"}]},"documentation":{"id":57469,"nodeType":"StructuredDocumentation","src":"4819:372:77","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5205:19:77","parameters":{"id":57475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57472,"mutability":"mutable","name":"token","nameLocation":"5232:5:77","nodeType":"VariableDeclaration","scope":57505,"src":"5225:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57471,"nodeType":"UserDefinedTypeName","pathNode":{"id":57470,"name":"IERC20","nameLocations":["5225:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"5225:6:77"},"referencedDeclaration":57117,"src":"5225:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57474,"mutability":"mutable","name":"data","nameLocation":"5252:4:77","nodeType":"VariableDeclaration","scope":57505,"src":"5239:17:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57473,"name":"bytes","nodeType":"ElementaryTypeName","src":"5239:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5224:33:77"},"returnParameters":{"id":57476,"nodeType":"ParameterList","parameters":[],"src":"5266:0:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":57553,"nodeType":"FunctionDefinition","src":"6339:594:77","nodes":[],"body":{"id":57552,"nodeType":"Block","src":"6428:505:77","nodes":[],"statements":[{"assignments":[57517,57519],"declarations":[{"constant":false,"id":57517,"mutability":"mutable","name":"success","nameLocation":"6729:7:77","nodeType":"VariableDeclaration","scope":57552,"src":"6724:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57516,"name":"bool","nodeType":"ElementaryTypeName","src":"6724:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":57519,"mutability":"mutable","name":"returndata","nameLocation":"6751:10:77","nodeType":"VariableDeclaration","scope":57552,"src":"6738:23:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57518,"name":"bytes","nodeType":"ElementaryTypeName","src":"6738:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57527,"initialValue":{"arguments":[{"id":57525,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57511,"src":"6785:4:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":57522,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57509,"src":"6773:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":57521,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6765:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57520,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:77","typeDescriptions":{}}},"id":57523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:14:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6780:4:77","memberName":"call","nodeType":"MemberAccess","src":"6765:19:77","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:25:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6723:67:77"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57528,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57517,"src":"6819:7:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57529,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57519,"src":"6831:10:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:77","memberName":"length","nodeType":"MemberAccess","src":"6831:17:77","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57531,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:77","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6831:22:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57535,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57519,"src":"6868:10:77","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6881:4:77","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":57536,"name":"bool","nodeType":"ElementaryTypeName","src":"6881:4:77","typeDescriptions":{}}}],"id":57538,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6880:6:77","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":57533,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6857:3:77","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57534,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6861:6:77","memberName":"decode","nodeType":"MemberAccess","src":"6857:10:77","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:30:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6831:56:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57541,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6830:58:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:69:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":57547,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57509,"src":"6919:5:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}],"id":57546,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57545,"name":"address","nodeType":"ElementaryTypeName","src":"6911:7:77","typeDescriptions":{}}},"id":57548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57543,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57929,"src":"6892:7:77","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$57929_$","typeString":"type(library Address)"}},"id":57544,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6900:10:77","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":57617,"src":"6892:18:77","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":57549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6892:34:77","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:107:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57515,"id":57551,"nodeType":"Return","src":"6800:126:77"}]},"documentation":{"id":57506,"nodeType":"StructuredDocumentation","src":"5844:490:77","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6348:23:77","parameters":{"id":57512,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57509,"mutability":"mutable","name":"token","nameLocation":"6379:5:77","nodeType":"VariableDeclaration","scope":57553,"src":"6372:12:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"},"typeName":{"id":57508,"nodeType":"UserDefinedTypeName","pathNode":{"id":57507,"name":"IERC20","nameLocations":["6372:6:77"],"nodeType":"IdentifierPath","referencedDeclaration":57117,"src":"6372:6:77"},"referencedDeclaration":57117,"src":"6372:6:77","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$57117","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57511,"mutability":"mutable","name":"data","nameLocation":"6399:4:77","nodeType":"VariableDeclaration","scope":57553,"src":"6386:17:77","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57510,"name":"bytes","nodeType":"ElementaryTypeName","src":"6386:5:77","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6371:33:77"},"returnParameters":{"id":57515,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57514,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57553,"src":"6422:4:77","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57513,"name":"bool","nodeType":"ElementaryTypeName","src":"6422:4:77","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6421:6:77"},"scope":57554,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":57184,"nodeType":"StructuredDocumentation","src":"243:457:77","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"linearizedBaseContracts":[57554],"name":"SafeERC20","nameLocation":"709:9:77","scope":57555,"usedErrors":[]}],"license":"MIT"},"id":77} \ No newline at end of file diff --git a/pkg/contracts/out/TERC20.sol/TERC20.json b/pkg/contracts/out/TERC20.sol/TERC20.json index 0eba6f5dc..67d315efe 100644 --- a/pkg/contracts/out/TERC20.sol/TERC20.json +++ b/pkg/contracts/out/TERC20.sol/TERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220d9caa9b9161f6b83ded40b1d8911e3e5de371dcc286d81e946e981b2619eb1fa64736f6c63430008130033","sourceMap":"290:2085:121:-:0;;;408:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;491:5;:13;499:5;491;:13;:::i;:::-;-1:-1:-1;514:7:121;:17;524:7;514;:17;:::i;:::-;-1:-1:-1;541:9:121;:21;;-1:-1:-1;;541:21:121;;;;;;;;;;;;-1:-1:-1;290:2085:121;;-1:-1:-1;290:2085:121;14:127:122;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:122;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:122;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:122:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:122;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:122;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:122;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:122;;;4142:26;4093:89;-1:-1:-1;;2897:1:122;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:122;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:122;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:122;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:122:o;:::-;290:2085:121;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220d9caa9b9161f6b83ded40b1d8911e3e5de371dcc286d81e946e981b2619eb1fa64736f6c63430008130033","sourceMap":"290:2085:121:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:43;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:122;;1185:22;1167:41;;1155:2;1140:18;5995:573:43;1027:187:122;4847:195:43;5007:18;5001:25;4847:195;;;1365:25:122;;;1353:2;1338:18;4847:195:43;1219:177:122;1603:189:121;;;;;;:::i;:::-;;:::i;787:98::-;869:9;;787:98;;869:9;;;;1876:36:122;;1864:2;1849:18;787:98:121;1734:184:122;17096:1062:43;;;:::i;1798:184:121:-;;;;;;:::i;:::-;;:::i;891:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:43;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;679:102:121;;;:::i;999:106::-;;;;;;:::i;:::-;;:::i;1988:184::-;;;;;;:::i;:::-;;:::i;1449:148::-;;;;;;:::i;:::-;;:::i;1268:175::-;;;;;;:::i;:::-;;:::i;14027:3010:43:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1111:151:121;;;;;;:::i;:::-;;:::i;575:98::-;629:13;661:5;654:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;:::o;5995:573:43:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:43;5995:573;;;;:::o;1603:189:121:-;1700:4;1723:62;1742:17;1754:4;1742:11;:17::i;:::-;1761:15;1773:2;1761:11;:15::i;:::-;1778:6;1723:18;:62::i;:::-;1716:69;1603:189;-1:-1:-1;;;;1603:189:121:o;17096:1062:43:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:43;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1798:184:121:-;1895:4;1918:57;1942:20;1954:7;1942:11;:20::i;:::-;1964:10;1918:23;:57::i;:::-;1911:64;1798:184;-1:-1:-1;;;1798:184:121:o;891:102::-;957:29;963:15;975:2;963:11;:15::i;:::-;980:5;957;:29::i;:::-;891:102;;:::o;679:::-;735:13;767:7;760:14;;;;;:::i;999:106::-;1067:31;1073:17;1085:4;1073:11;:17::i;:::-;1092:5;1067;:31::i;1988:184::-;2085:4;2108:57;2132:20;2144:7;2132:11;:20::i;:::-;2154:10;2108:23;:57::i;1449:148::-;1528:4;1551:39;1566:15;1578:2;1566:11;:15::i;:::-;1583:6;1551:14;:39::i;1268:175::-;1371:65;1387:18;1399:5;1387:11;:18::i;:::-;1407:20;1419:7;1407:11;:20::i;:::-;1429:6;1371:15;:65::i;:::-;1268:175;;;:::o;14027:3010:43:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:43;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:43;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:43:o;1111:151:121:-;1202:53;1212:17;1224:4;1212:11;:17::i;:::-;1231:15;1243:2;1231:11;:15::i;:::-;1248:6;1202:9;:53::i;2178:195::-;2233:14;2350:5;2345:3;2341:15;2338:1;2335:22;2325:32;;2178:195;;;:::o;10886:2203:43:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:43;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:43;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;891:102:121;;:::o;20140:1119:43:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:43;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:43;891:102:121;;:::o;7890:1035:43:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:43;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:43;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1268:175:121;;;:::o;14:548:122:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:122:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:122;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:122;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:122:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/shared/TERC20.sol\":\"TERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/test/shared/TERC20.sol\":{\"keccak256\":\"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e\",\"dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/shared/TERC20.sol":"TERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/test/shared/TERC20.sol":{"keccak256":"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9","urls":["bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e","dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq"],"license":"AGPL-3.0-only"}},"version":1},"id":121} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212204fde32460ff7d93c1fd64e3b3c2acab14e323e5e55bff86a5288c7d93a60e66d64736f6c63430008130033","sourceMap":"290:2085:143:-:0;;;408:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;491:5;:13;499:5;491;:13;:::i;:::-;-1:-1:-1;514:7:143;:17;524:7;514;:17;:::i;:::-;-1:-1:-1;541:9:143;:21;;-1:-1:-1;;541:21:143;;;;;;;;;;;;-1:-1:-1;290:2085:143;;-1:-1:-1;290:2085:143;14:127:144;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:144;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:144;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:144:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:144;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:144;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:144;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:144;;;4142:26;4093:89;-1:-1:-1;;2897:1:144;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:144;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:144;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:144;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:144:o;:::-;290:2085:143;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212204fde32460ff7d93c1fd64e3b3c2acab14e323e5e55bff86a5288c7d93a60e66d64736f6c63430008130033","sourceMap":"290:2085:143:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:144;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:144;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:144;;;1353:2;1338:18;4847:195:13;1219:177:144;1603:189:143;;;;;;:::i;:::-;;:::i;787:98::-;869:9;;787:98;;869:9;;;;1876:36:144;;1864:2;1849:18;787:98:143;1734:184:144;17096:1062:13;;;:::i;1798:184:143:-;;;;;;:::i;:::-;;:::i;891:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;679:102:143;;;:::i;999:106::-;;;;;;:::i;:::-;;:::i;1988:184::-;;;;;;:::i;:::-;;:::i;1449:148::-;;;;;;:::i;:::-;;:::i;1268:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1111:151:143;;;;;;:::i;:::-;;:::i;575:98::-;629:13;661:5;654:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1603:189:143:-;1700:4;1723:62;1742:17;1754:4;1742:11;:17::i;:::-;1761:15;1773:2;1761:11;:15::i;:::-;1778:6;1723:18;:62::i;:::-;1716:69;1603:189;-1:-1:-1;;;;1603:189:143:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1798:184:143:-;1895:4;1918:57;1942:20;1954:7;1942:11;:20::i;:::-;1964:10;1918:23;:57::i;:::-;1911:64;1798:184;-1:-1:-1;;;1798:184:143:o;891:102::-;957:29;963:15;975:2;963:11;:15::i;:::-;980:5;957;:29::i;:::-;891:102;;:::o;679:::-;735:13;767:7;760:14;;;;;:::i;999:106::-;1067:31;1073:17;1085:4;1073:11;:17::i;:::-;1092:5;1067;:31::i;1988:184::-;2085:4;2108:57;2132:20;2144:7;2132:11;:20::i;:::-;2154:10;2108:23;:57::i;1449:148::-;1528:4;1551:39;1566:15;1578:2;1566:11;:15::i;:::-;1583:6;1551:14;:39::i;1268:175::-;1371:65;1387:18;1399:5;1387:11;:18::i;:::-;1407:20;1419:7;1407:11;:20::i;:::-;1429:6;1371:15;:65::i;:::-;1268:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1111:151:143:-;1202:53;1212:17;1224:4;1212:11;:17::i;:::-;1231:15;1243:2;1231:11;:15::i;:::-;1248:6;1202:9;:53::i;2178:195::-;2233:14;2350:5;2345:3;2341:15;2338:1;2335:22;2325:32;;2178:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;891:102:143;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;891:102:143;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1268:175:143;;;:::o;14:548:144:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:144:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:144;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:144;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:144:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/shared/TERC20.sol\":\"TERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/test/shared/TERC20.sol\":{\"keccak256\":\"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e\",\"dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/shared/TERC20.sol":"TERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/test/shared/TERC20.sol":{"keccak256":"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9","urls":["bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e","dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":100443,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":100445,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":100447,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/test/shared/TERC20.sol","id":100658,"exportedSymbols":{"ERC20":[4491],"TERC20":[100657]},"nodeType":"SourceUnit","src":"42:2334:143","nodes":[{"id":100436,"nodeType":"PragmaDirective","src":"42:24:143","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":100438,"nodeType":"ImportDirective","src":"68:50:143","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":100658,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":100437,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:143","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":100657,"nodeType":"ContractDefinition","src":"290:2085:143","nodes":[{"id":100443,"nodeType":"VariableDeclaration","src":"321:21:143","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"337:5:143","scope":100657,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":100442,"name":"string","nodeType":"ElementaryTypeName","src":"321:6:143","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":100445,"nodeType":"VariableDeclaration","src":"348:23:143","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"364:7:143","scope":100657,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":100444,"name":"string","nodeType":"ElementaryTypeName","src":"348:6:143","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":100447,"nodeType":"VariableDeclaration","src":"377:24:143","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"392:9:143","scope":100657,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":100446,"name":"uint8","nodeType":"ElementaryTypeName","src":"377:5:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":100469,"nodeType":"FunctionDefinition","src":"408:161:143","nodes":[],"body":{"id":100468,"nodeType":"Block","src":"481:88:143","nodes":[],"statements":[{"expression":{"id":100458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100456,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100443,"src":"491:5:143","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":100457,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100449,"src":"499:5:143","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"491:13:143","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":100459,"nodeType":"ExpressionStatement","src":"491:13:143"},{"expression":{"id":100462,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100460,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100445,"src":"514:7:143","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":100461,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100451,"src":"524:7:143","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"514:17:143","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":100463,"nodeType":"ExpressionStatement","src":"514:17:143"},{"expression":{"id":100466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100464,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100447,"src":"541:9:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":100465,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100453,"src":"553:9:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"541:21:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":100467,"nodeType":"ExpressionStatement","src":"541:21:143"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":100454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100449,"mutability":"mutable","name":"name_","nameLocation":"434:5:143","nodeType":"VariableDeclaration","scope":100469,"src":"420:19:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100448,"name":"string","nodeType":"ElementaryTypeName","src":"420:6:143","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":100451,"mutability":"mutable","name":"symbol_","nameLocation":"455:7:143","nodeType":"VariableDeclaration","scope":100469,"src":"441:21:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100450,"name":"string","nodeType":"ElementaryTypeName","src":"441:6:143","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":100453,"mutability":"mutable","name":"decimals_","nameLocation":"470:9:143","nodeType":"VariableDeclaration","scope":100469,"src":"464:15:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":100452,"name":"uint8","nodeType":"ElementaryTypeName","src":"464:5:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"419:61:143"},"returnParameters":{"id":100455,"nodeType":"ParameterList","parameters":[],"src":"481:0:143"},"scope":100657,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":100478,"nodeType":"FunctionDefinition","src":"575:98:143","nodes":[],"body":{"id":100477,"nodeType":"Block","src":"644:29:143","nodes":[],"statements":[{"expression":{"id":100475,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100443,"src":"661:5:143","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":100474,"id":100476,"nodeType":"Return","src":"654:12:143"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"584:4:143","overrides":{"id":100471,"nodeType":"OverrideSpecifier","overrides":[],"src":"611:8:143"},"parameters":{"id":100470,"nodeType":"ParameterList","parameters":[],"src":"588:2:143"},"returnParameters":{"id":100474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100473,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100478,"src":"629:13:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100472,"name":"string","nodeType":"ElementaryTypeName","src":"629:6:143","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"628:15:143"},"scope":100657,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":100487,"nodeType":"FunctionDefinition","src":"679:102:143","nodes":[],"body":{"id":100486,"nodeType":"Block","src":"750:31:143","nodes":[],"statements":[{"expression":{"id":100484,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100445,"src":"767:7:143","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":100483,"id":100485,"nodeType":"Return","src":"760:14:143"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"688:6:143","overrides":{"id":100480,"nodeType":"OverrideSpecifier","overrides":[],"src":"717:8:143"},"parameters":{"id":100479,"nodeType":"ParameterList","parameters":[],"src":"694:2:143"},"returnParameters":{"id":100483,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100482,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100487,"src":"735:13:143","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100481,"name":"string","nodeType":"ElementaryTypeName","src":"735:6:143","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"734:15:143"},"scope":100657,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":100496,"nodeType":"FunctionDefinition","src":"787:98:143","nodes":[],"body":{"id":100495,"nodeType":"Block","src":"852:33:143","nodes":[],"statements":[{"expression":{"id":100493,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100447,"src":"869:9:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":100492,"id":100494,"nodeType":"Return","src":"862:16:143"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"796:8:143","overrides":{"id":100489,"nodeType":"OverrideSpecifier","overrides":[],"src":"827:8:143"},"parameters":{"id":100488,"nodeType":"ParameterList","parameters":[],"src":"804:2:143"},"returnParameters":{"id":100492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100491,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100496,"src":"845:5:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":100490,"name":"uint8","nodeType":"ElementaryTypeName","src":"845:5:143","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"844:7:143"},"scope":100657,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":100511,"nodeType":"FunctionDefinition","src":"891:102:143","nodes":[],"body":{"id":100510,"nodeType":"Block","src":"947:46:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100505,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100498,"src":"975:2:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100504,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"963:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"963:15:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100507,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100500,"src":"980:5:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100503,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"957:5:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":100508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:29:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100509,"nodeType":"ExpressionStatement","src":"957:29:143"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"900:4:143","parameters":{"id":100501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100498,"mutability":"mutable","name":"to","nameLocation":"913:2:143","nodeType":"VariableDeclaration","scope":100511,"src":"905:10:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100497,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100500,"mutability":"mutable","name":"value","nameLocation":"925:5:143","nodeType":"VariableDeclaration","scope":100511,"src":"917:13:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100499,"name":"uint256","nodeType":"ElementaryTypeName","src":"917:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"904:27:143"},"returnParameters":{"id":100502,"nodeType":"ParameterList","parameters":[],"src":"947:0:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100526,"nodeType":"FunctionDefinition","src":"999:106:143","nodes":[],"body":{"id":100525,"nodeType":"Block","src":"1057:48:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100520,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100513,"src":"1085:4:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100519,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1073:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100521,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:17:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100522,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100515,"src":"1092:5:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100518,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1067:5:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":100523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:31:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100524,"nodeType":"ExpressionStatement","src":"1067:31:143"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1008:4:143","parameters":{"id":100516,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100513,"mutability":"mutable","name":"from","nameLocation":"1021:4:143","nodeType":"VariableDeclaration","scope":100526,"src":"1013:12:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100512,"name":"address","nodeType":"ElementaryTypeName","src":"1013:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100515,"mutability":"mutable","name":"value","nameLocation":"1035:5:143","nodeType":"VariableDeclaration","scope":100526,"src":"1027:13:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100514,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1012:29:143"},"returnParameters":{"id":100517,"nodeType":"ParameterList","parameters":[],"src":"1057:0:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100546,"nodeType":"FunctionDefinition","src":"1111:151:143","nodes":[],"body":{"id":100545,"nodeType":"Block","src":"1192:70:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100537,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100528,"src":"1224:4:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100536,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1212:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:17:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":100540,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100530,"src":"1243:2:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100539,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1231:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1231:15:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100542,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100532,"src":"1248:6:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100535,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1202:9:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":100543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:53:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100544,"nodeType":"ExpressionStatement","src":"1202:53:143"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1120:14:143","parameters":{"id":100533,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100528,"mutability":"mutable","name":"from","nameLocation":"1143:4:143","nodeType":"VariableDeclaration","scope":100546,"src":"1135:12:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100527,"name":"address","nodeType":"ElementaryTypeName","src":"1135:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100530,"mutability":"mutable","name":"to","nameLocation":"1157:2:143","nodeType":"VariableDeclaration","scope":100546,"src":"1149:10:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100529,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100532,"mutability":"mutable","name":"amount","nameLocation":"1169:6:143","nodeType":"VariableDeclaration","scope":100546,"src":"1161:14:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100531,"name":"uint256","nodeType":"ElementaryTypeName","src":"1161:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1134:42:143"},"returnParameters":{"id":100534,"nodeType":"ParameterList","parameters":[],"src":"1192:0:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100566,"nodeType":"FunctionDefinition","src":"1268:175:143","nodes":[],"body":{"id":100565,"nodeType":"Block","src":"1361:82:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100557,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100548,"src":"1399:5:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100556,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1387:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1387:18:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":100560,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100550,"src":"1419:7:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100559,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1407:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1407:20:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100562,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100552,"src":"1429:6:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100555,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1371:15:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":100563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:65:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100564,"nodeType":"ExpressionStatement","src":"1371:65:143"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1277:20:143","parameters":{"id":100553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100548,"mutability":"mutable","name":"owner","nameLocation":"1306:5:143","nodeType":"VariableDeclaration","scope":100566,"src":"1298:13:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100547,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100550,"mutability":"mutable","name":"spender","nameLocation":"1321:7:143","nodeType":"VariableDeclaration","scope":100566,"src":"1313:15:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100549,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100552,"mutability":"mutable","name":"amount","nameLocation":"1338:6:143","nodeType":"VariableDeclaration","scope":100566,"src":"1330:14:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100551,"name":"uint256","nodeType":"ElementaryTypeName","src":"1330:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1297:48:143"},"returnParameters":{"id":100554,"nodeType":"ParameterList","parameters":[],"src":"1361:0:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100585,"nodeType":"FunctionDefinition","src":"1449:148:143","nodes":[],"body":{"id":100584,"nodeType":"Block","src":"1534:63:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100579,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100568,"src":"1578:2:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100578,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1566:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1566:15:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100581,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100570,"src":"1583:6:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100576,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1551:5:143","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100657_$","typeString":"type(contract super TERC20)"}},"id":100577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1557:8:143","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1551:14:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":100582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:39:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100575,"id":100583,"nodeType":"Return","src":"1544:46:143"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1458:8:143","overrides":{"id":100572,"nodeType":"OverrideSpecifier","overrides":[],"src":"1510:8:143"},"parameters":{"id":100571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100568,"mutability":"mutable","name":"to","nameLocation":"1475:2:143","nodeType":"VariableDeclaration","scope":100585,"src":"1467:10:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100567,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100570,"mutability":"mutable","name":"amount","nameLocation":"1487:6:143","nodeType":"VariableDeclaration","scope":100585,"src":"1479:14:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100569,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1466:28:143"},"returnParameters":{"id":100575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100574,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100585,"src":"1528:4:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100573,"name":"bool","nodeType":"ElementaryTypeName","src":"1528:4:143","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1527:6:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100609,"nodeType":"FunctionDefinition","src":"1603:189:143","nodes":[],"body":{"id":100608,"nodeType":"Block","src":"1706:86:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100600,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100587,"src":"1754:4:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100599,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1742:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:17:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":100603,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100589,"src":"1773:2:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100602,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1761:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:15:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100605,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100591,"src":"1778:6:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100597,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1723:5:143","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100657_$","typeString":"type(contract super TERC20)"}},"id":100598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1729:12:143","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1723:18:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":100606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1723:62:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100596,"id":100607,"nodeType":"Return","src":"1716:69:143"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1612:12:143","overrides":{"id":100593,"nodeType":"OverrideSpecifier","overrides":[],"src":"1682:8:143"},"parameters":{"id":100592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100587,"mutability":"mutable","name":"from","nameLocation":"1633:4:143","nodeType":"VariableDeclaration","scope":100609,"src":"1625:12:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100586,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100589,"mutability":"mutable","name":"to","nameLocation":"1647:2:143","nodeType":"VariableDeclaration","scope":100609,"src":"1639:10:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100588,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100591,"mutability":"mutable","name":"amount","nameLocation":"1659:6:143","nodeType":"VariableDeclaration","scope":100609,"src":"1651:14:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100590,"name":"uint256","nodeType":"ElementaryTypeName","src":"1651:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1624:42:143"},"returnParameters":{"id":100596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100595,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100609,"src":"1700:4:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100594,"name":"bool","nodeType":"ElementaryTypeName","src":"1700:4:143","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1699:6:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100628,"nodeType":"FunctionDefinition","src":"1798:184:143","nodes":[],"body":{"id":100627,"nodeType":"Block","src":"1901:81:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100622,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100611,"src":"1954:7:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100621,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"1942:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:20:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100624,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100613,"src":"1964:10:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100619,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1918:5:143","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100657_$","typeString":"type(contract super TERC20)"}},"id":100620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:17:143","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1918:23:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":100625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1918:57:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100618,"id":100626,"nodeType":"Return","src":"1911:64:143"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1807:17:143","overrides":{"id":100615,"nodeType":"OverrideSpecifier","overrides":[],"src":"1877:8:143"},"parameters":{"id":100614,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100611,"mutability":"mutable","name":"spender","nameLocation":"1833:7:143","nodeType":"VariableDeclaration","scope":100628,"src":"1825:15:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100610,"name":"address","nodeType":"ElementaryTypeName","src":"1825:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100613,"mutability":"mutable","name":"difference","nameLocation":"1850:10:143","nodeType":"VariableDeclaration","scope":100628,"src":"1842:18:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100612,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1824:37:143"},"returnParameters":{"id":100618,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100617,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100628,"src":"1895:4:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100616,"name":"bool","nodeType":"ElementaryTypeName","src":"1895:4:143","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1894:6:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100647,"nodeType":"FunctionDefinition","src":"1988:184:143","nodes":[],"body":{"id":100646,"nodeType":"Block","src":"2091:81:143","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100641,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100630,"src":"2144:7:143","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100640,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100656,"src":"2132:11:143","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:20:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100643,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100632,"src":"2154:10:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100638,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2108:5:143","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100657_$","typeString":"type(contract super TERC20)"}},"id":100639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2114:17:143","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2108:23:143","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":100644,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2108:57:143","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100637,"id":100645,"nodeType":"Return","src":"2101:64:143"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1997:17:143","overrides":{"id":100634,"nodeType":"OverrideSpecifier","overrides":[],"src":"2067:8:143"},"parameters":{"id":100633,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100630,"mutability":"mutable","name":"spender","nameLocation":"2023:7:143","nodeType":"VariableDeclaration","scope":100647,"src":"2015:15:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100629,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100632,"mutability":"mutable","name":"difference","nameLocation":"2040:10:143","nodeType":"VariableDeclaration","scope":100647,"src":"2032:18:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100631,"name":"uint256","nodeType":"ElementaryTypeName","src":"2032:7:143","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2014:37:143"},"returnParameters":{"id":100637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100636,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100647,"src":"2085:4:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100635,"name":"bool","nodeType":"ElementaryTypeName","src":"2085:4:143","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2084:6:143"},"scope":100657,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100656,"nodeType":"FunctionDefinition","src":"2178:195:143","nodes":[],"body":{"id":100655,"nodeType":"Block","src":"2249:124:143","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2311:56:143","statements":[{"nodeType":"YulAssignment","src":"2325:32:143","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2338:1:143"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2345:3:143","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2350:3:143"},"nodeType":"YulFunctionCall","src":"2350:5:143"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2341:3:143"},"nodeType":"YulFunctionCall","src":"2341:15:143"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2335:2:143"},"nodeType":"YulFunctionCall","src":"2335:22:143"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2325:6:143"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":100649,"isOffset":false,"isSlot":false,"src":"2338:1:143","valueSize":1},{"declaration":100652,"isOffset":false,"isSlot":false,"src":"2325:6:143","valueSize":1}],"id":100654,"nodeType":"InlineAssembly","src":"2302:65:143"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2187:11:143","parameters":{"id":100650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100649,"mutability":"mutable","name":"a","nameLocation":"2207:1:143","nodeType":"VariableDeclaration","scope":100656,"src":"2199:9:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100648,"name":"address","nodeType":"ElementaryTypeName","src":"2199:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2198:11:143"},"returnParameters":{"id":100653,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100652,"mutability":"mutable","name":"result","nameLocation":"2241:6:143","nodeType":"VariableDeclaration","scope":100656,"src":"2233:14:143","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100651,"name":"address","nodeType":"ElementaryTypeName","src":"2233:7:143","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2232:16:143"},"scope":100657,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":100440,"name":"ERC20","nameLocations":["309:5:143"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"309:5:143"},"id":100441,"nodeType":"InheritanceSpecifier","src":"309:5:143"}],"canonicalName":"TERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":100439,"nodeType":"StructuredDocumentation","src":"120:170:143","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[100657,4491],"name":"TERC20","nameLocation":"299:6:143","scope":100658,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":143} \ No newline at end of file diff --git a/pkg/contracts/out/utils/MockERC20.sol/MockERC20.json b/pkg/contracts/out/utils/MockERC20.sol/MockERC20.json deleted file mode 100644 index db1ea7378..000000000 --- a/pkg/contracts/out/utils/MockERC20.sol/MockERC20.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060408051808201909152600a81526926b7b1b5902a37b5b2b760b11b602082015260009062000042908262000125565b506040805180820190915260038152624d544b60e81b60208201526001906200006c908262000125565b506002805460ff19166012179055620001f1565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620000ab57607f821691505b602082108103620000cc57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200012057600081815260208120601f850160051c81016020861015620000fb5750805b601f850160051c820191505b818110156200011c5782815560010162000107565b5050505b505050565b81516001600160401b0381111562000141576200014162000080565b620001598162000152845462000096565b84620000d2565b602080601f831160018114620001915760008415620001785750858301515b600019600386901b1c1916600185901b1785556200011c565b600085815260208120601f198616915b82811015620001c257888601518255948401946001909101908401620001a1565b5085821015620001e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620002016000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220be7aadc691aedd577e01a3fca93edf030758d8399ae09cd301824a447ec7329064736f6c63430008130033","sourceMap":"290:2027:48:-:0;;;411:100;;;;;;;;;-1:-1:-1;435:20:48;;;;;;;;;;;;-1:-1:-1;;;435:20:48;;;;-1:-1:-1;;435:20:48;;-1:-1:-1;435:20:48;:::i;:::-;-1:-1:-1;465:15:48;;;;;;;;;;;;-1:-1:-1;;;465:15:48;;;;:7;;:15;;:7;:15;:::i;:::-;-1:-1:-1;490:9:48;:14;;-1:-1:-1;;490:14:48;502:2;490:14;;;290:2027;;14:127:120;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:120;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:120;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:120;;;2580:26;2531:89;-1:-1:-1;;1335:1:120;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:120;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:120;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:120;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:120:o;:::-;290:2027:48;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220be7aadc691aedd577e01a3fca93edf030758d8399ae09cd301824a447ec7329064736f6c63430008130033","sourceMap":"290:2027:48:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:43;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:120;;1185:22;1167:41;;1155:2;1140:18;5995:573:43;1027:187:120;4847:195:43;5007:18;5001:25;4847:195;;;1365:25:120;;;1353:2;1338:18;4847:195:43;1219:177:120;1545:189:48;;;;;;:::i;:::-;;:::i;729:98::-;811:9;;729:98;;811:9;;;;1876:36:120;;1864:2;1849:18;729:98:48;1734:184:120;17096:1062:43;;;:::i;1740:184:48:-;;;;;;:::i;:::-;;:::i;833:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:43;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;621:102:48;;;:::i;941:106::-;;;;;;:::i;:::-;;:::i;1930:184::-;;;;;;:::i;:::-;;:::i;1391:148::-;;;;;;:::i;:::-;;:::i;1210:175::-;;;;;;:::i;:::-;;:::i;14027:3010:43:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1053:151:48;;;;;;:::i;:::-;;:::i;517:98::-;571:13;603:5;596:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;517:98;:::o;5995:573:43:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:43;5995:573;;;;:::o;1545:189:48:-;1642:4;1665:62;1684:17;1696:4;1684:11;:17::i;:::-;1703:15;1715:2;1703:11;:15::i;:::-;1720:6;1665:18;:62::i;:::-;1658:69;1545:189;-1:-1:-1;;;;1545:189:48:o;17096:1062:43:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:43;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1740:184:48:-;1837:4;1860:57;1884:20;1896:7;1884:11;:20::i;:::-;1906:10;1860:23;:57::i;:::-;1853:64;1740:184;-1:-1:-1;;;1740:184:48:o;833:102::-;899:29;905:15;917:2;905:11;:15::i;:::-;922:5;899;:29::i;:::-;833:102;;:::o;621:::-;677:13;709:7;702:14;;;;;:::i;941:106::-;1009:31;1015:17;1027:4;1015:11;:17::i;:::-;1034:5;1009;:31::i;1930:184::-;2027:4;2050:57;2074:20;2086:7;2074:11;:20::i;:::-;2096:10;2050:23;:57::i;1391:148::-;1470:4;1493:39;1508:15;1520:2;1508:11;:15::i;:::-;1525:6;1493:14;:39::i;1210:175::-;1313:65;1329:18;1341:5;1329:11;:18::i;:::-;1349:20;1361:7;1349:11;:20::i;:::-;1371:6;1313:15;:65::i;:::-;1210:175;;;:::o;14027:3010:43:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:43;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:43;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:43:o;1053:151:48:-;1144:53;1154:17;1166:4;1154:11;:17::i;:::-;1173:15;1185:2;1173:11;:15::i;:::-;1190:6;1144:9;:53::i;2120:195::-;2175:14;2292:5;2287:3;2283:15;2280:1;2277:22;2267:32;;2120:195;;;:::o;10886:2203:43:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:43;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:43;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;833:102:48;;:::o;20140:1119:43:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:43;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:43;833:102:48;;:::o;7890:1035:43:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:43;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:43;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1210:175:48;;;:::o;14:548:120:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:120:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:120;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:120;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:120:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/utils/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/test/utils/MockERC20.sol\":{\"keccak256\":\"0xb389347214a50a7d4dd26ce3dcd327a4bae2c6cc490727460d4b8b8740cff3fa\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d3123d579b4916e8f95e5bad46904ad40b0e74f22a4227f85ef2d31b261280c8\",\"dweb:/ipfs/Qmb7qwzQgg6amzHtoDLwEUTBitbcqQeR3WtgRmRixXzwxQ\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts/=lib/allo-v2/lib/openzeppelin-contracts/contracts/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/allo-v2/lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/utils/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/test/utils/MockERC20.sol":{"keccak256":"0xb389347214a50a7d4dd26ce3dcd327a4bae2c6cc490727460d4b8b8740cff3fa","urls":["bzz-raw://d3123d579b4916e8f95e5bad46904ad40b0e74f22a4227f85ef2d31b261280c8","dweb:/ipfs/Qmb7qwzQgg6amzHtoDLwEUTBitbcqQeR3WtgRmRixXzwxQ"],"license":"AGPL-3.0-only"}},"version":1},"id":48} \ No newline at end of file diff --git a/pkg/contracts/src/RegistryFactoryV0_0.sol b/pkg/contracts/src/RegistryFactoryV0_0.sol index eb41a726e..cba53d783 100644 --- a/pkg/contracts/src/RegistryFactoryV0_0.sol +++ b/pkg/contracts/src/RegistryFactoryV0_0.sol @@ -3,15 +3,19 @@ pragma solidity ^0.8.19; import {RegistryCommunity} from "../src/RegistryCommunity.sol"; +import {RegistryFactory} from "../src/RegistryFactory.sol"; + import {OwnableUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; +import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; struct CommunityInfo { uint256 fee; bool valid; } +/// @custom:oz-upgrades-from RegistryFactory -contract RegistryFactoryV0_0 is OwnableUpgradeable { - uint256 public nonce = 0; +contract RegistryFactoryV0_0 is OwnableUpgradeable, UUPSUpgradeable { + uint256 public nonce; mapping(address => CommunityInfo) communityToInfo; address public gardensFeeReceiver; @@ -39,13 +43,17 @@ contract RegistryFactoryV0_0 is OwnableUpgradeable { if (_address == address(0)) revert AddressCannotBeZero(); } - function initialize(address _gardensFeeReceiver) public initializer { + function initialize(address _gardensFeeReceiver) public virtual initializer { __Ownable_init(); - setReceiverAddress(_gardensFeeReceiver); //onlyOwner + nonce = 0; + gardensFeeReceiver = _gardensFeeReceiver; + emit FeeReceiverSet(_gardensFeeReceiver); + // setReceiverAddress(_gardensFeeReceiver); //onlyOwner } function createRegistry(RegistryCommunity.InitializeParams memory params) public + virtual returns (address _createdRegistryAddress) { RegistryCommunity registryCommunity = new RegistryCommunity(); @@ -58,35 +66,39 @@ contract RegistryFactoryV0_0 is OwnableUpgradeable { return address(registryCommunity); } - function setReceiverAddress(address _newFeeReceiver) public onlyOwner { + function setReceiverAddress(address _newFeeReceiver) public virtual onlyOwner { _revertZeroAddress(_newFeeReceiver); gardensFeeReceiver = _newFeeReceiver; emit FeeReceiverSet(_newFeeReceiver); } - function getGardensFeeReceiver() external view returns (address) { + function getGardensFeeReceiver() external view virtual returns (address) { return gardensFeeReceiver; } - function setProtocolFee(address _community, uint256 _newProtocolFee) public onlyOwner { + function setProtocolFee(address _community, uint256 _newProtocolFee) public virtual onlyOwner { communityToInfo[_community].fee = _newProtocolFee; emit ProtocolFeeSet(_community, _newProtocolFee); } - function setCommunityValidity(address _community, bool _isValid) public onlyOwner { + function setCommunityValidity(address _community, bool _isValid) public virtual onlyOwner { communityToInfo[_community].valid = _isValid; emit CommunityValiditySet(_community, _isValid); } - function getCommunityValidity(address _community) external view returns (bool) { + function getCommunityValidity(address _community) external view virtual returns (bool) { return communityToInfo[_community].valid; } - function getProtocolFee(address _community) external view returns (uint256) { + function getProtocolFee(address _community) external view virtual returns (uint256) { if (!communityToInfo[_community].valid) { revert CommunityInvalid(_community); } return communityToInfo[_community].fee; } + + function _authorizeUpgrade(address) internal override onlyOwner {} + + uint256[50] private __gap; } diff --git a/pkg/contracts/src/RegistryFactoryV0_1.sol b/pkg/contracts/src/RegistryFactoryV0_1.sol new file mode 100644 index 000000000..cce510a18 --- /dev/null +++ b/pkg/contracts/src/RegistryFactoryV0_1.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: AGPL-3.0-only +pragma solidity ^0.8.19; + +import {RegistryCommunity} from "../src/RegistryCommunity.sol"; + +import {RegistryFactoryV0_0} from "../src/RegistryFactoryV0_0.sol"; + +import {OwnableUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; + +struct CommunityInfo { + uint256 fee; + bool valid; +} +/// @custom:oz-upgrades-from RegistryFactoryV0_0 + +contract RegistryFactoryV0_1 is RegistryFactoryV0_0 { + /*|--------------------------------------------|*/ + /*| EVENTS |*/ + /*|--------------------------------------------|*/ + + /*|--------------------------------------------|*/ + /*| ERRORS |*/ + /*|--------------------------------------------|*/ + + /*|--------------------------------------------|*/ + /*| MODIFIERS |*/ + /*|--------------------------------------------|*/ + + function initializeV2() public reinitializer(2) { + __Ownable_init(); + } +} diff --git a/pkg/contracts/test/RegistryUpgradeableTest.t.sol b/pkg/contracts/test/RegistryUpgradeableTest.t.sol index 7d4aa37d6..32f14f3f3 100644 --- a/pkg/contracts/test/RegistryUpgradeableTest.t.sol +++ b/pkg/contracts/test/RegistryUpgradeableTest.t.sol @@ -3,7 +3,7 @@ pragma solidity ^0.8.19; import "forge-std/Test.sol"; import "forge-std/console.sol"; -import "openzeppelin/contracts/token/ERC20/IERC20.sol"; +import "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {IAllo} from "allo-v2-contracts/core/interfaces/IAllo.sol"; import {IStrategy} from "allo-v2-contracts/core/interfaces/IStrategy.sol"; // Core contracts @@ -21,6 +21,8 @@ import {MockStrategy} from "allo-v2-test/utils/MockStrategy.sol"; import {GV2ERC20} from "../script/GV2ERC20.sol"; import {GasHelpers2} from "./shared/GasHelpers2.sol"; import {RegistryFactoryV0_0} from "../src/RegistryFactoryV0_0.sol"; +import {RegistryFactoryV0_1} from "../src/RegistryFactoryV0_1.sol"; +import {RegistryFactory} from "../src/RegistryFactory.sol"; import {CVStrategy, StrategyStruct} from "../src/CVStrategy.sol"; import {RegistryCommunity} from "../src/RegistryCommunity.sol"; import {Safe} from "safe-contracts/contracts/Safe.sol"; @@ -30,8 +32,10 @@ import {CVStrategyHelpers} from "./CVStrategyHelpers.sol"; import {Native} from "allo-v2-contracts/core/libraries/Native.sol"; -import {Math} from "openzeppelin/contracts/utils/math/Math.sol"; -import {Upgrades} from "@openzeppelin/foundry/Upgrades.sol"; +import {Math} from "@openzeppelin/contracts/utils/math/Math.sol"; +import {Upgrades} from "@openzeppelin/foundry/LegacyUpgrades.sol"; + +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; // @dev Run forge test --mc RegistryTest -vvvvv contract RegistryUpgradeableTest is @@ -57,7 +61,7 @@ contract RegistryUpgradeableTest is // Metadata public metadata = Metadata({protocol: 1, pointer: "strategy pointer"}); - RegistryFactoryV0_0 internal registryFactory; + RegistryFactoryV0_1 internal registryFactory; RegistryCommunity internal registryCommunity; RegistryCommunity internal nonKickableCommunity; @@ -98,12 +102,19 @@ contract RegistryUpgradeableTest is vm.stopPrank(); vm.startPrank(gardenOwner); - registryFactory = RegistryFactoryV0_0( - Upgrades.deployUUPSProxy( - "RegistryFactoryV0_0.sol", - abi.encodeWithSelector(RegistryFactoryV0_0.initialize.selector, address(protocolFeeReceiver)) - ) + ERC1967Proxy proxy = new ERC1967Proxy( + address(new RegistryFactoryV0_0()), + abi.encodeWithSelector(RegistryFactoryV0_0.initialize.selector, address(protocolFeeReceiver)) + ); + + Upgrades.upgradeProxy( + address(proxy), + "RegistryFactoryV0_1.sol", + abi.encodeWithSelector(RegistryFactoryV0_1.initializeV2.selector) ); + + registryFactory = RegistryFactoryV0_1(address(proxy)); + // registryFactory = new RegistryFactory(); // _registryFactory().setReceiverAddress(address(protocolFeeReceiver)); diff --git a/remappings.txt b/remappings.txt index 880d47da2..4f001e2d7 100644 --- a/remappings.txt +++ b/remappings.txt @@ -4,5 +4,6 @@ safe-contracts/=lib/safe-contracts/ allo-v2/=lib/allo-v2/ allo-v2-contracts/=lib/allo-v2/contracts/ allo-v2-test/=lib/allo-v2/test/ -@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/ +@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ +@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/ @openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/ \ No newline at end of file